如果Promise对象reject自身

代码:

            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的操作都无效果(实则应该也是出现异常未捕获导致)


牛魔王的故事
浏览 436回答 1
1回答

陪伴而非守候

var der = {};var p = new Promise(function (resolve, reject) {    der.reject = reject;})// 下面修改成这个样子,因为then内部的处理函数也需要异常捕获p.then((v) => {    console.log('resolve');    console.log(v);}).catch(function (v) {    console.log(v);    console.log('reject');    console.log(v);});der.reject(p);console.log(p);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript