异步编程之Promise(二)
2018-12-27 本文已影响0人
AMONTOP
实例
我们再用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函数进行捕获。