为什么我不能放入 Promise.catch 处理程序?把戏为什么有效
为什么我不能在 catch 回调内部抛出一个,让进程像在任何其他作用域中一样处理错误?Error
如果我什么都不做,就会被打印出来,我对发生的事情一无所知。这个过程就结束了...console.log(err)
例:
function do1() {
return new Promise(function(resolve, reject) {
throw new Error('do1');
setTimeout(resolve, 1000)
});
}
function do2() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
reject(new Error('do2'));
}, 1000)
});
}
do1().then(do2).catch(function(err) {
//console.log(err.stack); // This is the only way to see the stack
throw err; // This does nothing
});
如果回调在主线程中执行,为什么会被黑洞吞噬?Error