异步编程之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函数进行捕获。

上一篇 下一篇

猜你喜欢

热点阅读