簡單易懂的Promise

bennet發表於2019-02-23

什麼是Promise?本程式碼用定外賣來舉例子,讓你明白。

// 定外賣就是一個Promise,Promist的意思就是承諾
// 我們定完外賣,飯不會立即到我們手中
// 這時候我們和商家就要達成一個承諾
// 在未來,不管飯是做好了還是燒糊了,都會給我們一個答覆
function 定外賣(){
    // Promise 接受兩個引數
    // resolve: 非同步事件成功時呼叫(菜燒好了)
    // reject: 非同步事件失敗時呼叫(菜燒糊了)
    return new Promise((resolve, reject) => {
        let result = 做飯()
    // 下面商家給出承諾,不管燒沒燒好,都會告訴你
    if (result == `菜燒好了`) 
        // 商家給出了反饋
        resolve(`我們的外賣正在給您派送了`)
    else 
        reject(`不好意思,我們菜燒糊了,您再等一會`)
    })
}

// 商家廚房做飯,模擬概率事件
function 做飯() {
    return Math.random() > 0.5 ? `菜燒好了` : `菜燒糊了`
}

// 你在家上餓了麼定外賣
// 有一半的概率會把你的飯燒糊了
// 好在有承諾,他還是會告訴你
定外賣()
    // 菜燒好執行,返回`我們的外賣正在給您派送了`
    .then(res => console.log(res))
    // 菜燒糊了執行,返回`不好意思,我們菜燒糊了,您再等一會`
    .catch(res => console.log(res))複製程式碼

相關文章