Задать вопрос
@RoflanDaniil

Почему после вызова промиса код не выполняется и процесс не умирает?

const find = async function (){
  try{
    console.log(await Model.findOne())
    console.log('after find');
  }
  catch (e){
    console.log('find err = ' + e); // не выводится т.к. нет ошибок
  }
}

find()
.then(()=>{console.log('then')})

console.log('END'); // Не выводится и процесс не завершается
  • Вопрос задан
  • 289 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 2
Потому что Model.findOne() возвращает промис, который никогда не выполняется. В итоге оператор await ждёт этот промис вечно. Ну пусть ждёт, вдруг промис всё-таки когда-нибудь выполнится, и выполнение функции find() продолжится, а после него и скрипт завершится.
Ответ написан
@RoflanDaniil Автор вопроса
Перезапустил систему - все заработало.. Даже не предполагаю в чем могла быть проблема. В node.js возможно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы