※ 認識非同步概念(二)

閱讀時間約 2 分鐘

※ Promise基本介紹

什麼是 Promise?

Promise 是 JavaScript 的一個構造函式,用於創建表示非同步操作的物件實例。使用 new Promise() 時,你會創建一個包含非同步操作的實例,這個實例可以透過其繼承的方法如 then(), catch(), 和 finally() 來管理非同步操作的成功、失敗及其後續處理。

在創建 Promise 時,必須提供一個執行器函數(executor function),這個函數會立即執行並接收兩個參數:resolvereject。這些參數是函數,用於在異步操作成功時調用 resolve,或在操作失敗時調用 reject

Promise 它具備了 callback 的優點,但透過 .then() 來標明流程,而 .then() 之間可以互相鏈結 (chaining),把之前「一層包一層的 callback」,轉換成 .then() 的串接。

以下是Promise的基本形式:

function asyncFunction(value) {
return new Promise(function(resolve, reject) {
if(value) {
resolve(value)//已實現,成功
}else {
reject(reason)//有錯誤,已拒絕,失敗
}
})
}

簡單範例:

//resolve的結果
function delay() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve("Hello")
}, 1000)
})
}
//以下是一個Promise接到resolve的結果就設計成一個子函式(then)後再接到一個值後再印出
delay().then((res) => console.log(res))//印出"Hello"
//reject的結果
function delay() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
reject("Error")
}, 1000)
})
}
delay().catch((res) => console.log(res))//印出"Error"

以下是Promise的流程圖示:

raw-image



    全端網頁開發專業知識分享
    留言0
    查看全部
    發表第一個留言支持創作者!
    認識 JavaScript (十一)
    閱讀時間約 2 分鐘
    認識 JavaScript (十二)
    閱讀時間約 4 分鐘
    認識 JavaScript (十三)
    閱讀時間約 1 分鐘
    認識 JavaScript (十四)
    閱讀時間約 3 分鐘
    認識 JavaScript (十五)
    閱讀時間約 9 分鐘
    ※ 認識非同步概念(一)
    閱讀時間約 3 分鐘