为了账号安全,请及时绑定邮箱和手机立即绑定

能否解释一下代码中Promise执行过程

能否解释一下代码中Promise执行过程

墨色风雨 2019-03-15 18:15:00
class demo {  promiseFn() {    return new Promise((resolve, reject) => {      resolve(10);    });  }  FnA() {    return this.promiseFn()      .then(a => {        throw a;      })      .catch(e => {        console.log(e);      });  }  FnB() {    this.FnA().then(a => {      console.log(a, 11111111111);    });  }}new demo().FnB();//10//undefined 11111111111为什么FnB的then回执行?
查看完整描述

2 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

你的代码执行等价于下面的方式


class demo {

    promiseFn() {

        return new Promise((resolve, reject) => {

            resolve(10);

        });

    }

    FnB() {

        this.promiseFn().then(a => {

            console.log('a' + a)

            throw a;

        }).catch(e => {

            console.log('e' + e);

            return e

            }).then(a => {

            console.log(a, 11111111111);

        });

    }

}


new demo().FnB();

//输出

a10

e10

undefined 11111111111

因为catch 捕获执行后返回的也是一个promise,假如你在catch里 return e的话,最后就会输出


a10

e10

10 11111111111


查看完整回答
反对 回复 2019-03-21
?
精慕HU

TA贡献1845条经验 获得超8个赞

因为FnA的错误已经处理了


查看完整回答
反对 回复 2019-03-21
  • 2 回答
  • 0 关注
  • 738 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信