用Promise處理非同步函式

2022-06-10 14:27:15 字數 883 閱讀 5883

處理函式之間的非同步問題,使其同步進行的其中一種方法,就是使用promise。promise在es6中被提出。

使用示例如下:

假如有三個函式,要求按getone、gettwo、getthree的順序執行。函式引數為promise特有的resolve和reject,reslove和reject可在函式中返回結果。

1

//非同步方法一

2function

getone(resolve,reject),3000)6}

7//非同步方法二

8function

gettwo(resolve,reject),3000)12}

13//

非同步方法三

14function

getthree(resolve,reject),3000)

18  }

將getone函式作為引數生成promise物件,用then來串聯,result能拿到上乙個函式返回的結果,then裡面返回的是乙個新的promise物件,從而實現串聯。

1

var result = new

promise(getone)

2 .then(function

(resultone))

7 .then(function

(resulttwo))

12 .then(function

(resultthree))

16 .catch(function

(err))

結果如下:

從而實現了這三個函式間的同步執行和前後傳參。

es6 promise 非同步方法處理

1.在js中,凡是涉及到非記憶體的操作都為非同步操作。如讀寫磁碟檔案,訪問url請求,讀寫資料庫資料等都為非同步操作。2.在es6之前我們最常見對於非同步的處理就是書寫大量的callback函式,所以當你的下一步資料需要依賴於上一步非同步操作的資料時,會出現很多巢狀,凌亂的感覺。這種後果就是你不會知...

非同步promise機制

1.promise鏈 const setdelay millisecond 毫秒後輸出的 millisecond const setdelaysecond seconds 秒,一共需要延遲 秒 resolve setdelay 2000 這裡依賴上乙個promise seconds 1000 set...

Promise 非同步程式設計

promise 是非同步程式設計的解決方案,他代表承諾,便是一定會丟擲兩種狀態,狀態一經確定就不會改變 編譯成功 resolve value 為 必選 編譯失敗 reject error 可選 使用then 接收正確的丟擲 then 後面接 catch function error 可以簡寫為fun...