通常在研究promise时我会看到以下注释:你应该在函数中放置一个promise,这样就不会立即调用它。
所以我不应该使用它
var somePromise = new Promise(function(resolve, reject){...});
并且更好地使用它
var somePromise = function(){
return new Promise(function(resolve, reject){...});
};
有人可以用实际的方式详细说明这个建议到底是什么意思吗?
它没有多少:要么立即创建一个promise,要么创建一个函数,在调用它时将创建并返回一个promise:
var somePromise = new Promise(function(resolve, reject){...});
在这里,您已在当前上下文中创建了一个存储在somePromise
变量中的promise。你现在可以使用这个承诺。
var somePromise = function() {
return new Promise(function(resolve, reject) {
// ...
});
}
在第二种情况下,somePromise
不是承诺而是功能。您必须调用该函数并捕获其返回值(promise)以操纵promise。目前没有创建承诺。
以下是通过调用函数获得承诺的方法:
var myPromise = somePromise(); // myPromise contains the returned promise
在第二种情况下,您可能希望将参数传递给somePromise
函数,使其更具通用性和可重用性。