js 異步代碼
阿新 • • 發佈:2019-03-22
接受 value 代碼 spa urn color 代碼例子 技術分享 調用
這段時間一直在用node.js做畢設的後臺,所以需要一些異步代碼操作,主要的異步方式有:Promise、Generator 和 async / await,但下面主要講 Promise 和 async / await 。
一、Promise
1、Promise表示一個異步操作的最終結果,可以理解為狀態機,它有三種狀態
(1)Pending:表示還在執行
(2)Fullfilled(或者resolved):執行成功
(3)Rejected:執行失敗
2、Promise 的構造函數
var promise = new Promise(function (resolve,reject){
if(/*異步操作成功*/){
resolve(value);
}else{
reject(value);
}
});
代碼例子如下:
3、使用then方法獲取結果
then方法接受兩個匿名函數作為參數,它們代表onResolved 和 onRejected 函數。value 和 error參數代表回調的結果,如下所示:
二、async / await
async 函數總是會返回一個Promise對象,如果return 關鍵字後面不是一個Promise,那麽默認調用promise.resolve 方法進行轉換。對於async 函數來說,await關鍵字不是必需的,await 關鍵字可以“自動執行”一個Promise ,獲得結果。如果async函數有多個await 要執行,它會順序執行 這些Promise對象。如下所示:
js 異步代碼