Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 被拒绝与被承诺捕获_Javascript_Promise_Es6 Promise - Fatal编程技术网

Javascript 被拒绝与被承诺捕获

Javascript 被拒绝与被承诺捕获,javascript,promise,es6-promise,Javascript,Promise,Es6 Promise,ES6 Promise中的catch和then(uu,onRejected)之间有什么区别?我只知道,onRejected不会处理内部Promise的拒绝状态 Promise.resolve().then(() => { return new Promise((resolve,reject) => { throw new Error('Error occurs'); }); },er => console.log(er)); //Chrome th

ES6 Promise
中的
catch
then(uu,onRejected)
之间有什么区别?我只知道,
onRejected
不会处理内部
Promise
的拒绝状态

Promise.resolve().then(() => {
    return new Promise((resolve,reject) => {
      throw new Error('Error occurs');
    }); 
},er => console.log(er)); //Chrome throws `Uncaught (in promise)`

Promise.resolve().then(() => {
    return new Promise((resolve,reject) => {
      throw new Error('Error occurs');
    }); 
}).catch(er => console.log(er)); //Error occurs

您的第一段代码无法捕获错误,因为错误处理程序位于相同的
中。然后
抛出错误的位置


至于你的问题

.catch(onRejected);
与相同

.then(null, onRejected);
不确定什么

.then(_, onRejected);

会做什么,取决于
是什么,我想在第一个示例中,您的
onRejected
仅适用于
Promise.resolve()
。在
then(onResolved,onRejected)
中,只调用两个函数中的一个,而不是两个。尝试使用
Promise.reject('something')。然后()。

catch()
适用于您返回的承诺,因此错误会按预期捕获。

OP没有使用
\u
作为变量名,而是表示他只是询问第二个参数。