Функция ожидания, которая разрешает обещание без аргументов - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть функция, которая разрешает Обещание без передачи аргументов:

const checkUser = (user)=> {
    let promise = Parse.Promise();

    if(user.success){
        promise.resolve();
    } else {
        promise.reject("Error");
    }
}

Проблема в том, что во всех прочитанных мною учебниках они присваивают возвращаемое значение переменной, например:

let response = await checkUser(user);

В вышеприведенном случае я могу просто ждать обещание, не присваивая результат переменной, или это не рекомендуется? Например:

...
await checkUser(user);
...

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Я считаю плохой практикой выполнять обещание ни с чем, поскольку это подходящий канал для результатов. И если вы не хотите получать результат, зачем вообще вызывать функцию? Однако это может относиться в основном к функциональному программированию.

Могу ли я просто await обещание, не присваивая результат переменной, или это не рекомендуется?

Да, вы можете сделать это полностью. Если вам не нужно ничего делать с результатом - например, когда вы знаете, что он всегда равен undefined - тогда вы можете просто проигнорировать его.

0 голосов
/ 12 сентября 2018

Да, вы можете сделать это полностью. JavaScript все еще будет ждать выполнения обещания.

Вот модификация первого примера MDN для await. Он не возвращает значение, но все еще ожидает разрешения Promise перед выполнением кода после await.

function resolveAfter2Seconds() { 
  return new Promise(resolve => {
    setTimeout(resolve, 2000);
  });
}

(async function() {
  console.log(1)
  await resolveAfter2Seconds();
  console.log(2);
})()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...