gpt4 book ai didi

javascript - 被 promise 对象的错误链混淆

转载 作者:行者123 更新时间:2023-11-30 00:19:10 24 4
gpt4 key购买 nike

<分区>

我在 node.js 中使用 promise 对象。我有一个对象:

var Send = {
send(post_ids) {
return Post.findById(post_ids)
.then((posts) => {
return sendArticlesToWechat(setupArticles(posts)); // sendArticlesToWechat is also a promise
})
.then((result) => {
console.log("RESULT: " + result);
})
.catch((err) => {
console.error("SEND ERROR: " + err);
return err;
});
},
}

export default Send;

并在另一个文件中调用它的方法:

Send.send(req.body)
.then((result) => {
console.log("CALL SEND: " + result);
})
.catch((err) => {
console.error(err);
});

当发生错误时,我得到两个输出:

SEND ERROR: ERROR: // error message
CALL SEND: ERROR: // error message

这个错误发生在返回的sendArticlesToWechat()函数中。因为它也是一个 promise ,所以我可以在外部 catch 它的错误。这是我所期望的。

当我调用 Send.send() 时,我希望在 catch() 中得到错误,但错误出现在 then() 方法。

根据输出,错误确实是从之前的catch()返回的,为什么我不能把它保留在catch()中?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com