通常在研究承诺时,我会看到以下注释: 你应该在一个函数中放一个promise,这样就不会立即调用它。
所以我不应该使用这个
var somePromise = new Promise(function(resolve, reject){...});
并且更好地使用此
var somePromise = function(){
return new Promise(function(resolve, reject){...});
};
有人可以用实际的方式详细说明这个建议究竟是什么意思吗?
答案 0 :(得分:3)
没有太多内容:要么立即创建一个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
函数,使其更具通用性和可重用性。