實例
我們再用promise實現發郵件加工資的案例:
情況一:
在一定時間后(假設5s后),老板回復了郵件,可以是以下兩種情況:
let addWages = ()=>{
return new Promise(
(resolve, reject) => {
setTimeout(function () {
// 公司賬戶余額
let currentMoney = 99999999;
// 公司賬戶余額 > 100w
if (currentMoney > 1000000) {
resolve('同意加薪');
} else {
resolve('不同意加薪');
}
}, 5000)
})
};
addWages().then(data => {
console.log(data);
}, data => {
console.log(data);
});
// 運行結果:同意加薪
情況二 :
公司賬戶已經沒錢,沒法加工資了,表現形式如下:
let addWages = ()=>{
return new Promise(
(resolve, reject) => {
throw new Error('你表現不夠優秀!');
})
};
addWages().then(data => {
console.log(data);
}, data => {
console.log('這里輸出:' + data);
});
我們可以采用then的第二個參數捕獲reject返回結果或者捕獲失敗,當然也可以通過.catch函數進行捕獲。