Promise/deferred(转)
来源:互联网 发布:nginx自定义错误页面 编辑:程序博客网 时间:2024/05/24 00:57
很多做前端的朋友应该都听说过Promise
(或者Deferred
)对象,今天我就讲一下我对Promise
的认识
What?
Promise
是CommonJS
的规范之一,拥有resolve
、reject
、done
、fail
、then
等方法,能够帮助我们控制代码的流程,避免函数的多层嵌套。如今异步在web开发中越来越重要,对于开发人员来说,这种非线性执行的编程会让开发者觉得难以掌控,而Promise
可以让我们更好地掌控代码的执行流程,jQuery
等流行的js库都已经实现了这个对象,年底即将发布的ES6
也将原生实现Promise
Why
想象这样一个场景,两个异步请求,第二个需要用到第一个请求成功的数据,那么我们代码可以这样写
ajax({ url: url1, success: function(data) { ajax({ url: url2, data: data, success: function() { } }); } });
如果继续下去在回调函数中进行下一步操作,嵌套的层数会越来越多。我们可以进行适当的改进,把回调函数写到外面
function A() { ajax({ url: url1, success: function(data) { B(data); } }); } function B(data) { ajax({ url: url2, success: function(data) { ...... } }); }
即使是改写成这样,代码还是不够直观,但是如果有了Promise对象,代码就可以写得非常清晰,一目了然,请看
new Promise(A).done(B);
这样函数B就不用写在A的回调中了
0 0
- Promise/deferred(转)
- Deferred promise
- deferred.promise( [target ] )
- jQuery.Deferred和Promise
- jquery deferred promise
- Promise/Deferred模式
- Promise与deferred
- Promise对象和Deferred对象
- 【转载】jQuery Promise 实现 Deferred
- jquery中deferred和promise
- jQuery deferred 对象的 promise 方法
- Java Deferred/Promise 库JDeferred 实例
- 使用jQuery Deferred对象实现Promise
- jQuery中deferred、promise对象的使用
- jQuery的deferred对象和promise对象
- jquery的Deferred--promise的解决方案
- JS异步编程(promise、deferred对象)
- $.Deferred()的promise()方法-学习笔记
- JSON解析 Gson解析方式 JSONObject JSONArray
- 复习javascript基础 (1)
- Foundation Kit框架概叙
- 初步18-画星星
- 五个解决方案让MongoDB拥有RDBMS的鲁棒性事务
- Promise/deferred(转)
- HDU 5500 Reorder the Books
- javascript base库
- 写在开发前——android各种准备工作
- XMPPFramework框架的导入
- 新的开始——写给自己的话
- 利用Kali进行WiFi钓鱼测试实战
- 了解Promise Angular(转)
- Xcode 7 之SQL无法添加的问题(已解决)