Почему и когда использовать Promise.resolve? - PullRequest
0 голосов
/ 16 февраля 2019

Как я знаю, обещания используются для представления успеха / неудачи асинхронной операции.Когда я смотрю в один из моих проектов, все функции оборачивают конечный результат в Promise.resolve.Я не понимаю, какая польза от переноса всех результатов функции в Promise.resolve.Есть ли здесь какой-либо вариант использования?

Например, все функции соответствуют шаблону ниже.

process = (data) => {
  //Perform some operations.
  return Promise.resolve(result);
} 

1 Ответ

0 голосов
/ 16 февраля 2019

Единственная причина использования Promise.resolve - это преобразование значения, которое может быть обещанием в обещание.

Promise.resolve(value) - это удобный метод, который выполняет new Promise(resolve => resolve(value).Если значение является обещанием, оно будет возвращено, если это обещание из библиотеки обещаний пользовательской среды, оно будет преобразовано в собственное обещание.Если это простое значение, оно будет преобразовано для обещания, выполненного с этим значением.

Promise.resolve(5); // returns a promise fulfilled with the number 5.

Это полезно в нескольких случаях, например: - Если функция может вернутьобещание, оно всегда должно возвращать обещание - так, например, если у вас есть кэшированное значение, оно может быть Promise.resolve d.- Если имеется несколько реализаций функциональности, а некоторые являются синхронными - это создает единый интерфейс.

Обратите внимание, что на практике с функциями async это больше не нужно, поскольку асинхронная функция всегда возвращает обещание -даже если вы return обычное значение (фактически, все, что вы возвращаете из асинхронной функции, является Promise.resolve d неявно).

Также обратите внимание, что, в частности, вы не должны заставлять функции возвращать обещания, если все ониdo - это синхронные вычисления, поскольку функция, возвращающая обещание, подразумевает ввод-вывод в JavaScript.

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