Как выполнить асинхронный запрос на промисах?

Всем привет. Помогите, пожалуйста, написать асинхронный код.
Задача:
1. Подключиться к БД
2. Достать данные о серверах (IP адрес, PORT, Game ID)
3. Достать данные о игре сервера (Game type)
4. Получить новые данные из библиотеки GameDig
5. Обновить данные в БД
6. Закрыть соединение

Я застопорился на моменте, когда работаю с библиотекой - она работает синхронно. Код:
const Gamedig = require('gamedig');
const { Client } = require('pg');
const client = new Client({
  user: "mvxmvl",
  password: "mvxmvl",
  host: "localhost",
  port: 5432,
  database: "rockgame"
}) 


client.connect()
.then(() => console.log("Соединение установлено"))
.then(() => client.query("SELECT * FROM monitoring_server"))
.then(async (results) => {
  for(const server of results.rows) {
    // ЗДЕСЬ ЕЩЁ ЕСТЬ СОЕДИНЕНИЕ
    const game = await client.query("SELECT * FROM monitoring_game WHERE id = $1", [server.game_id])
    const gameAlias = game.rows[0].alias
    
    await Gamedig.query({
      type: gameAlias,
      host: server.ip_address,
      port: server.port_address
    }).then((newServerData) => {
      console.log(newServerData)
    })
      .catch((error) => {
        console.log("Ошибка получения данных: " + error)
      })
    // ЗДЕСЬ ЕЩЁ ЕСТЬ СОЕДИНЕНИЕ
  }
})
.catch(e => console.log(e))
.finally(() => {
  console.log("Соединение разорвано");
  client.end()
})
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы