已發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