为什么不在下面运行代码“console.log(err)”?但是返回“TypeError:无法在字符串中创建属性'未被捕获''在'promise'中出错'”
function abc() {
throw "error in promise";
return 123;
};
abc().catch(function(err) {
console.log(err)
}).then ( abcMessage =>
console.log(abcMessage)
)
答案 0 :(得分:1)
.then
和.catch
需要构建Promise。你没有回复承诺。 promise回调(executor)有两个参数,一个解析器和一个rejecter。根据代码中发生的情况,如果一切正常,您可能需要调用resolve,或者如果出现问题则拒绝。
function abc() {
return new Promise(function(resolve, reject) {
reject(123)
});
};
abc()
.catch(err => {
console.log(err);
return err;
})
.then(abcMessage => {
console.log(abcMessage)
});
new Error("error in promise")