Sta*_*ley 4 javascript es6-promise
你如何处理承诺之外的错误(例如下面的"新错误")?
function testError() {
throw new Error("new error") // how to handle this?
var p123 = new Promise(function(resolve, reject) {
resolve(123)
});
return p123
};
testError().catch(err => {
return err; // code doesn't come here
})
.then(ok => {
console.log(ok)
});
Run Code Online (Sandbox Code Playgroud)
如果您不确定某个函数是否会同步抛出(或返回一个值),您可以使用它来调用它.then().这将包装它,以便无论如何生成结果都将得到一致的处理:
function testError() {
throw new Error("new error") // how to handle this?
var p123 = new Promise(function(resolve, reject) {
resolve(123)
});
return p123
};
Promise.resolve()
.then(testError)
.catch(err => {
console.error(err);
return err;
})
.then(ok => {
console.log(ok.message)
});Run Code Online (Sandbox Code Playgroud)