Установите соединение elasticsearch с помощью nodejs синхронно

#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, в которой этого нет