代码:
var der = {};
var p = new Promise(function (resolve, reject) {
der.reject = reject;
})
p.then((v) => {
console.log('resolve');
console.log(v);
})
p.catch(function (v) {
console.log(v);
console.log('reject');
console.log(v);
});
der.reject(p);
console.log(p);
火狐下只输出reject,chrome下正常输入,然后会出现Uncaught (in promise)
请问,为什么会出现未捕获的异常呢,p的catch明明定义了,而且为什么火狐下只输出reject,输出p的操作都无效果(实则应该也是出现异常未捕获导致)
补充:
出现未捕获的异常的原因是,虽然then中没定义第二个函数,但是仍然是运行then,并且将据因和状态传递给返回的新的Promise对象,返回的Promise对象没有catch回调,所以报出了异常
但是firefox中输出p无效果的原因仍然不清楚