让我们说我在Chrome上。我这样做:
new Promise(function (resolve, reject) {
// ... do some work
resolve('foo');
}).then(doStuff).then(doMoreStuff);
“解决”调用是否可以抛出异常? doStuff或doMoreStuff可以做什么,这会让'resolve'抛出异常吗?
答案 0 :(得分:0)
如果doStuff
或doMoreStuff
抛出异常,它将在调用.then()
的上下文中抛出,而不是函数体。到调用.then()
时,该函数已返回。那里的代码是异步执行的。
如果您想捕获异常,则需要将try
放在doStuff
new Promise(function (resolve, reject) {
// ... do some work
resolve('foo');
}).then(x => {
try {
doStuff(x);
} catch (e) {
console.log("Error in doStuff");
}).then(doMoreStuff);