[JavaScript] Promise
發表於 : 2023-09-25, 02:28
在 JavaScript 時常會碰到非同步程式的狀況,大部份是與伺服器取得資料時會遇到,
以前只能用回乎函式來解決非同步程式碼的問題,但是回呼函式很難維護與閱讀,如下:
JavaScript 在 ES6 導入 Promise,它可以更簡單的處理非同步任務,如下:
透過 new Promise 建立一個新的約定,並在約定完成時透過 then 方法接續處理回傳值,
但若遇到被拒絕的約定或異常可以透過 catch 方法處理發生的錯誤。
以前只能用回乎函式來解決非同步程式碼的問題,但是回呼函式很難維護與閱讀,如下:
代碼: 選擇全部
getJSON("data/ninjas.json", function(err, ninjas){
getJSON(ninjas[0].location, function(err, locationInfo){
sendOrder(locationInfo, function(err, status){
/*Process status*/
})
})
});
代碼: 選擇全部
const promise = new Promise((resolve, reject) => {
resolve("Promise return");
// reject("Promise error");
});
promise.then( res => console.log(res)).catch( err => console.log(err));
但若遇到被拒絕的約定或異常可以透過 catch 方法處理發生的錯誤。