微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

这个问题已经在这里有了答案:            >            Is there a difference between promise.then.then vs promise.then; promise.then                                     1个
这两种从函数返回承诺的方式之间是否有区别

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

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

我以为两种方法都相同,但是在mocha测试用例中,只有第二种方法有效.

解决方法:

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

return promise;

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

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

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

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

有关更多信息,请阅读以下答案:Is there a difference between promise.then.then vs promise.then; promise.then以了解链接和分支之间的区别.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐