Почему мои Async и Await все еще не выполняют работу по выполнению последовательности - PullRequest
0 голосов
/ 15 ноября 2018

Я новичок в Node.js и не уверен, правильно ли я понял Async / Await. Вот что я пытаюсь сделать

Я передаю значения в функцию и ожидаю, что она будет работать как

Шаг 1. Добавьте оба значения Шаг 2. Получить документ из базы данных на основе значения из шага 1 Шаг 3. вернуть документ, полученный с шага 2.

Но результат, который я вижу,

Шаг 1. добавить оба значения Шаг 2. возврат неопределенного при выполнении запроса к БД шаг 3. закончить выполнение запроса

Как мне добиться желаемого результата из этого.

var someFunction = async (a,b)=>{
  var k;
  try{
    k = a+b; 
  }catch(err){
    return(err);
  }

  var document;
  try{
    document = await db.collection(somecollection).findOne({_id:k})
  }catch(err){
    return(err);
  }
  return(document);
}

someFunction(4,5).then((result)=>{
  console.log(result);
});

1 Ответ

0 голосов
/ 15 ноября 2018

findone может вернуть неопределенное значение, если совпадение не найдено findOne возвращает неопределенное значение на сервере

В первом блоке try...catch, почему вы беспокоитесь об исключении добавления двух переменных? это никогда не приводит к ошибке в JavaScript.

Также убедитесь, что вы правильно передаете _id для findone, Mongo использует UUID для вычисления _id, и я не думаю, что это может быть возвращено после добавления + b

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...