在研究 Promise 时,我经常会看到以下注释: 您应该在函数中放置一个 Promise,这样它就不会立即被调用。
所以我不应该使用这个
var somePromise = new Promise(function(resolve, reject){...});
更好地使用它
var somePromise = function(){
return new Promise(function(resolve, reject){...});
};
有人可以用实际的方式详细说明这个建议的确切含义吗?
最佳答案
没有太多内容:要么立即创建一个 Promise,要么创建一个在调用时创建并返回 Promise 的函数:
创建 promise
var somePromise = new Promise(function(resolve, reject){...});
在这里,您在当前上下文中创建了一个 Promise,该 Promise 存储在 somePromise
变量中。您现在可以使用该 promise 。
创建一个返回 Promise 的函数
var somePromise = function() {
return new Promise(function(resolve, reject) {
// ...
});
}
在第二种情况下,somePromise
不是一个 Promise,而是一个函数。您必须调用该函数并捕获其返回值( promise )才能操作 promise 。此时不会创建任何 promise 。
以下是如何通过调用函数获得 promise :
var myPromise = somePromise(); // myPromise contains the returned promise
在第二种情况下,您可能希望将参数传递给 somePromise
函数,使其更加通用和可重用。
关于javascript - 将 Promise 包装在函数中与在变量中声明它之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48049586/