Всем привет. Помогите, пожалуйста, написать асинхронный код.
Задача:
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()
})