處理函式之間的非同步問題,使其同步進行的其中一種方法,就是使用promise。promise在es6中被提出。
使用示例如下:
假如有三個函式,要求按getone、gettwo、getthree的順序執行。函式引數為promise特有的resolve和reject,reslove和reject可在函式中返回結果。
1將getone函式作為引數生成promise物件,用then來串聯,result能拿到上乙個函式返回的結果,then裡面返回的是乙個新的promise物件,從而實現串聯。//非同步方法一
2function
getone(resolve,reject),3000)6}
7//非同步方法二
8function
gettwo(resolve,reject),3000)12}
13//
非同步方法三
14function
getthree(resolve,reject),3000)
18 }
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...