Har*_*hna 1 javascript node.js promise
据我所知,Promise 用于表示异步操作的成功/失败。当我查看我的一个项目时,所有函数都将最终结果包装在“Promise.resolve”中。我不明白,将所有函数结果包装在“Promise.resolve”中有什么用。这里有任何用例吗?
例如,所有功能都遵循以下模板。
process = (data) => {
//Perform some operations.
return Promise.resolve(result);
}
Run Code Online (Sandbox Code Playgroud)
使用的唯一原因Promise.resolve是将可能是承诺的值转换为承诺。
Promise.resolve(value)是一种方便的方法,可以做到new Promise(resolve => resolve(value). 如果值是一个承诺,它将被返回,如果它是来自用户空间承诺库的承诺,它将被转换为原生承诺。如果它是一个普通值,它将被转换为用该值实现的承诺。
Promise.resolve(5); // returns a promise fulfilled with the number 5.
Run Code Online (Sandbox Code Playgroud)
这在几种情况下很有用,例如: - 如果一个函数可能返回一个承诺,它应该总是返回一个承诺 - 例如,如果你有一个缓存的值,它可能需要Promise.resolved。- 如果有多个功能实现并且有些是同步的 - 它会创建一个统一的接口。
请注意,在async函数的实践中,不再需要这么多了,因为异步函数总是返回一个承诺——即使你return是一个普通的值(事实上,无论你从异步函数返回什么都是Promise.resolve隐式的)。
另请注意,特别是如果函数所做的只是同步计算,则不应让函数返回承诺,因为返回承诺的函数意味着 JavaScript 中的 I/O。
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |