两种承诺链实现方式的区别
Difference between two way of promise chain implementation
我注意到两种承诺链:有什么区别吗?
promise1()
.then(promise2)
.then(promise3)
.then(promise4);
和
promise1().then(function() {
return promise2();
}).then(function() {
return promise3();
}).then(function() {
return promise4(){
}).then(function() {
});
是的,有一个区别- then
用结果值调用它的参数,但是您的第二个代码片段忽略了任何参数,并以零参数调用所有函数。而且,由于附加的空回调,它保证满足undefined
(如果它不拒绝),与第一个代码片段相比,它使用返回值promise4(…)
进行解析。
当然,第一个也更容易读
实际上,这两个代码片段在顺序方面没有区别,因为您的代码将在两个代码片段中以相同的顺序运行。
但是你的代码片段显示了一些差异。其中一个是传递参数第二个是返回结果。
考虑到第一个区别,第一个代码段虽然没有使用它,但接受了参数,而第二个代码段不是这样,因为你没有传递任何参数,也没有使用它。
最后,在考虑第二个差异时,您在第一个代码片段中没有返回任何东西,而在第二个代码片段中,除了最后一个代码片段之外,您正在针对每个then的返回语句调用函数,这导致最后返回未定义的
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- 为什么这在IE中的工作方式与在Firefox中不同
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- 什么'这是JS中以下定义方式的区别
- 用两种方式保存对象,有什么区别
- 这两种用 JavaScript 编写原型函数的方式有什么区别?
- 当我以以下方式在控制器中使用 gridapi 时有什么区别
- 调用事件侦听器 - 两种方式之一起作用,有什么区别
- Chrome 和 Firefox 以及浏览器在解析字符串的方式上有什么区别吗?
- 我让用户将脚本加载到网页中的方式是否有区别
- D3这两种数据绑定方式有什么区别
- 都是'sync'event和Backbone.sync以某种方式连接在一起——两者之间有什么区别
- 对象定义有两种方式-有什么区别
- 这两种在javascript中编写函数的方式之间的区别
- 在JS中这三种声明方法的方式有什么区别吗?
- 在coffeescript(在Rails中)中调用函数的两种方式的区别
- 两种承诺链实现方式的区别
- 在Javascript中向对象添加属性的两种方式的区别
- 在JavaScript中以不同方式定义类的区别
- 将脚本放在底部的两种不同方式 - 有什么区别