1. 程式人生 > 實用技巧 >ES6中Promise使用方法

ES6中Promise使用方法

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.
});