什麼是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))複製程式碼