Promise对象状态变更

52 阅读1分钟
const p1 = new Promise((resolve, reject) => {
        //return Promise.reject();
        //Promise.reject();
}).then(() => {
    console.log('then');
}).catch(e => {
    console.log('catch');
});

经过测试,上面注释掉的两行代码无论执行哪一行,p1的状态都为pending,then和catch中的回调都不会被执行。所以Promise对象的状态不受其内部Promise对象状态的影响。

也就是说其内部的Promise失败了,并不等于会抛出异常,因为抛出异常会改变当前Promise对象的状态。