Я понимаю из пары из похожих вопросов , что для использования асинхронного ожидания на верхнем уровне необходимо свернуть анонимные функции.
Я пытаюсь инициализировать несколько соединений с базой данных и не могу получить правильный синтаксис.
Я пробовал следующее:
let dbs = Promise.all(async () => {
await sqlite3.open("./db1.sqlite", { Promise }),
await sqlite3.open("./db2.sqlite", { Promise })
}
)
let [db_in, db_out] = dbs
, что не удается с:
evalmachine.<anonymous>:16
let [db_in, db_out] = dbs
^
TypeError: dbs is not iterable
И
async function init_dbs() {
const [db_in, db_out, abstract_queue] = await Promise.all([
sqlite3.open("./db1.sqlite", { Promise }),
sqlite3.open("./db2.sqlite", { Promise })
]);
let result = await [db_in,db_out]
}
const [db_in, db_out] = init_dbs().then(() => [db_in, db_out])
, который возвращает
evalmachine.<anonymous>:44
const [db_in, db_out] = init_dbs().then(() => [db_in, db_out])
^
TypeError: init_dbs(...).then is not a function or its return value is not iterable
Какой синтаксис для этого подходит?