这个问题已经在这里有了答案: > 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] 举报,一经查实,本站将立刻删除。