Как ждать асинхронную функцию при запуске через оболочку в nodejs - PullRequest
0 голосов
/ 27 июня 2019

У меня есть файл

demo.js

с функцией, которая ожидает извлечения данных из БД, как это

exports.findNames = async () => {
  const names= await Student.find();
  console.log('Names:', names);
  return names;
};

Итак, пока я тестирую эту функцию через оболочку / командную строку, которая не дожидается завершения функции.

Проверено как это

node ./demo findNames

NB. Студент - модель, отправка ответа из другого файла, поэтому не здесь. и это не промежуточное ПО. Мангуст используется в качестве инструмента БД

1 Ответ

0 голосов
/ 27 июня 2019

Вам необходимо await или .then функции в вашем demo.js. Позвольте привести пример:

names.js

exports.findNames = async () => {
    const names= await new Promise((res,rej)=>{
        setTimeout(()=>{
            res([1,2,3])
        }, 100);
    });
    console.log('Names:', names);
};

demo.js

const name = require('./names');
(async ()=>{
    await name.findNames();
})();

выход

$ node demo.js
Names: [ 1, 2, 3 ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...