// 定外賣就是一個(gè)Promise,Promist的意思就是承諾
// 我們定完外賣,飯不會(huì)立即到我們手中
// 這時(shí)候我們和商家就要達(dá)成一個(gè)承諾
// 在未來,不管飯是做好了還是燒糊了,都會(huì)給我們一個(gè)答復(fù)
function 定外賣(){
// Promise 接受兩個(gè)參數(shù)
// resolve: 異步事件成功時(shí)調(diào)用(菜燒好了)
// reject: 異步事件失敗時(shí)調(diào)用(菜燒糊了)
return new Promise((resolve, reject) => {
let result = 做飯()
// 下面商家給出承諾,不管燒沒燒好,都會(huì)告訴你
if (result == '菜燒好了')
// 商家給出了反饋
resolve('我們的外賣正在給您派送了')
else
reject('不好意思,我們菜燒糊了,您再等一會(huì)')
})
}
// 商家廚房做飯,模擬概率事件
function 做飯() {
return Math.random() > 0.5 ? '菜燒好了' : '菜燒糊了'
}
// 你在家上餓了么定外賣
// 有一半的概率會(huì)把你的飯燒糊了
// 好在有承諾,他還是會(huì)告訴你
定外賣()
// 菜燒好執(zhí)行,返回'我們的外賣正在給您派送了'
.then(res => console.log(res))
// 菜燒糊了執(zhí)行,返回'不好意思,我們菜燒糊了,您再等一會(huì)'
.catch(res => console.log(res))