1. 程式人生 > >js 異步代碼

js 異步代碼

接受 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 異步代碼