最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

为什么以及何时使用Promise.resolve?

运维笔记admin14浏览0评论

为什么以及何时使用Promise.resolve?

为什么以及何时使用Promise.resolve?

据我所知,Promises用于表示异步操作的成功/失败。当我查看我的一个项目时,所有函数都将最终结果包装在'Promise.resolve'中。我不明白,在'Promise.resolve'中包含所有函数结果有什么用。这里有用例吗?

例如,所有功能都在下面的模板中。

process = (data) => {
  //Perform some operations.
  return Promise.resolve(result);
} 
回答如下:

使用Promise.resolve的唯一原因是转换一个可能是承诺的承诺的值。

Promise.resolve(value)是一种方便的方法,做new Promise(resolve => resolve(value)。如果值是一个promise,它将被返回,如果它是来自userland promise库的promise,它将被转换为本机promise。如果它是一个普通值,它将被转换为履行该值的承诺。

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

这在几种情况下很有用,例如: - 如果函数可能返回一个promise,它应该总是返回一个promise - 例如,如果你有一个缓存值,它可能需要是Promise.resolved。 - 如果有多个功能实现,而另一些是同步的 - 它会创建一个统一的接口。

请注意,在实践中使用async函数时,不再需要这么多,因为异步函数总是返回一个promise - 即使你return是一个普通值(实际上,无论你从异步函数返回的是隐式的Promise.resolved)。

还要注意,特别是如果它们所做的只是同步计算,你不应该让函数返回promises,因为返回promise的函数意味着JavaScript中的I / O.

发布评论

评论列表(0)

  1. 暂无评论