ES6中Promise使用方法
阿新 • • 發佈:2021-01-19
Promise狀態
ES6中Promise鏈式的思想
f1().then(f2).then(f3);
非同步操作的三種狀態
- pending(非同步操作未完成)
- fulfilled(非同步操作已完成)
- rejected(非同步操作失敗)
而三種狀態只有兩種模式,一旦狀態改變,就不會再變
- 從pending到resolved 從未完成到以完成
- 從pending到rejected 從未完成到操作失敗
reject的含義,把Promise的狀態設定為rejected(失敗),通過then可以捕捉到,然後執行失敗的程式碼
catch的含義,用來指定reject的回撥,當resolve執行報錯的時候,會丟擲異常到catch,將引數傳入err裡面,有錯誤程式碼也不會報錯,與try/cat對比,有相同的功能
export function put(url,data,haaders){
return new promise((resolve,reject) =>{ //返回一個Promise物件
axios.put(url,data,headers).then((res) =>{
resolve(res) //執行成功後的時候返回
}).catch((err) =>{ //resolve執行錯誤的時候,會將引數傳入err並執行reject
reject(err) //失敗的時候返回
})
})
}
伺服器完成請求後希望對伺服器的響應進行某些處理。這可以通過使用該then方法來實現,使用result進行處理
myPromise.then(result => {
// do something with the result.
});
服務區請求被拒絕後的響應方法,會在reject呼叫promise方法後立即執行
myPromise.catch(error => {
// do something with the error.
});