无法处理javascript承诺中的错误

时间:2017-04-14 01:51:32

标签: javascript es6-promise

为什么不在下面运行代码“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)
)

1 个答案:

答案 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")