已发ES6文章:
1~14
15
16
上篇了解了 Promise 和它的 then 方法,本篇介绍它的其他方法。
catch( fn(error) )
catch 方法用来专门传递 reject 回调函数,以处理错误信息。
Promise 对象在处理错误信息时是可以传递的,比如有多个then调用的情况,如果第一个then没有指定reject,错误信息就会被传递到第二个then处理,第二没有传到第三个,依次类推。所以往往我们只需要一个处理函数即可,catch方法就是为了方便捕获错误而生。
注:实际上 catch 方法调用的是 then(null,reject)
//下面的错误信息穿过了2个then方法最后被catch捕获
var p=new Promise(function(resolve,reject){
reject(5)
});
p.then(function(){
console.log(1);
}).then(function(2){
console.log(2)
}).catch(function(x){
console.log(x)
});
//5
Promise.all( arr )
此方法用来创建一个异步池,执行多个异步操作,当全部成功时,执行resolve,否则一个失败则执行reject
参数 arr 是个数组(或具有Interator接口),每个元素都是一个Promise实例,如果不是则会被 Promise.resolve转为Promise对象的实例。
Promise.race( arr )
类似 all 方法,此方法在其中一个异步执行完成后结束,无论是resolve还是reject都不再执行其他的异步操作。
Promise.resolve( [x] )
此方法将参数转为一个promise对象的实例。
等同于一个直接resolve的Promise
Promise.resolve( x);
//等同于
new Promise(function(resolve){
resolve(x)
})
注:
当无参数时,返回个promise实例
当参数是个Promise实例时,直接返回
Promise.reject( arr )
类似 Promise.resolve
【关注一下不迷路~】
【html】【css】【html】【css】【javascript】【html】【javascript】【css】【javascript】【css】
閱讀更多 全棧前端 的文章
關鍵字: 学点 编程语言 JavaScript