Javascript从函数返回Promise-Promise链与变量

吉汀

这两种从函数返回promise的方式之间有区别吗

var promise;
promise = callAsync();
promise.then(doSomething).then(doSomethingElse);
return promise;

var promise;
promise = callAsync();
return promise.then(doSomething).then(doSomethingElse);

我认为这两种方法是相同的,但是在mocha测试用例中,只有第二种方法有效。

jfriend00

他们当然是不一样的。每个都.then()返回一个新的承诺。所以,

return promise;

返回了最初的承诺,但是:

return promise.then(doSomething).then(doSomethingElse);

返回一个新的诺言,这是调用这两个.then()方法的结果不同之处在于,后者返回的承诺受那些.then()方法中调用的函数的影响,而第一个承诺仅受callAsync()其他.then()处理程序的影响,与其他处理程序无关

第一个承诺只是监视callAsync()它与其他.then()处理程序中发生的事情完全无关理解的关键.then()是它会返回一个新的承诺,并且该新的承诺会受到.then()处理程序中发生的事情的影响

有关更多信息,请阅读以下答案:promise.then.then与promise.then之间是否有区别?答应。然后了解链接和分支之间的区别。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章