#node.js #elasticsearch
Вопрос:
У меня есть приложение nodejs, в котором я хочу установить соединение с elasticsearch и другими базами данных, такими как mongodb, а затем создать сервер, но я не хочу использовать функции обратного вызова . есть ли какой-либо способ приостановить выполнение кода nodejs, пока функция устанавливает соединения с кластером ES.
function loadConfFile(){ } /* wait for above to complete */ function createESConnection(){ } /* wait for above to complete */ function createMongoDBConnection(){ } const express = require('express'); /* and so on */
Ответ №1:
Оберните в обещание с помощью асинхронности:
async function createESConnection(){ }
Используйте wait, чтобы… ну, подождите, пока это не закончится:
let esConn = await createESConnection()
Но есть одно предостережение: все, что использует эту асинхронную функцию, также должно быть асинхронным (читайте «перейти на основе обещаний»).
P.S. Надеюсь, вы не ограничены какой-то реликтовой версией JS, в которой этого нет