在Promise中攻击与捕获

Lew*_*wis 16 javascript promise es6-promise

之间有什么区别catchthen(_,onRejected)ES6 Promise?我只知道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
Run Code Online (Sandbox Code Playgroud)

Jar*_*a X 16

您的第一段代码不会捕获错误,因为错误处理程序与.then抛出错误的位置相同


至于你的问题

.catch(onRejected);
Run Code Online (Sandbox Code Playgroud)

是完全相同的

.then(null, onRejected);
Run Code Online (Sandbox Code Playgroud)

不知道是什么

.then(_, onRejected);
Run Code Online (Sandbox Code Playgroud)

会做什么,取决于_我猜是什么

  • OP没有使用`_`作为变量名,而是表示他只询问第二个参数. (4认同)