Promise A+ 学习

Promise A+ 是前端必须要掌握的一个东西, 在ES6 中已经原生的支持了它.

为什么要使用它?
异步 处理的方法, 正常都是写在回调里面, 如何多个 异步的 方法 需要并行的话, 那么就需要在回调里面嵌套回调, 这样 数量 一多, 就会出现了 " 回调 地狱 ", 而 Promise 正是为了解决这个问题而出现的.

使用情景
同时发送两个Ajax请求,然后要在两个请求都成功返回后再做一件接下来的事,想一想如果只按前面的方式在各自的调用位置去附加回调,这是不是好像也有点难办?


一. 如何使用?

  1. 新建一个 promise 对象
  2. 调用 promise 的 then 方法, 调用执行结束的 调用方法
// 1. 新建 promise 对象
var promise = new Promise(function (resolve, reject) {  
    setTimeout(function(){
        resolve(100);
    },2000)
})

// 2. 调用
promise.then(function fn1(val){
    return val+100
}).then(function fn2(val){//这里为了便于说明给匿名函数加了个名字
    alert(val);
})

二. 主流的类库

bluebrid 有浏览器版的, 也有 NodeJs 版本

三.使用情景代码

  1. 多个URL请求结束之后, 在做接下来的事
//Jquery 的使用方法 ,Jquery1.5+ 支持该功能
var promise1 = $.ajax(url1),
promise2 = $.ajax(url2);
promiseCombined = $.when(promise1, promise2);
promiseCombined.done(onDone);

未完待续...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容