因此,下面的代码是功能性的,只是一个随规格变化的函数,但我有点怀疑,我认为它看起来很难看,特别是回调,它真的需要重构,对于如何重构它来维护和克服缺陷有什么想法?
await rps_id.map((rp_id) => {
return new Promise((resolve, reject) => {
Part.Model.updateOne({
_id: rp_id
}, {
invoiceId: invoice._id
}).then(function(result) {
return resolve();
})
.catch(() => {
reject();
});
});
});
这是代码的其余部分:https://codepen.io/0xf10yd/pen/PopRWpz
我非常感谢你的帮助,谢谢
发布于 2021-06-03 18:19:30
您已经使用了await,因此我建议将所有代码更改为使用异步/等待以保持一致性。
箭头函数中返回的承诺实际上并没有达到目的。在.then中解析,在.catch中拒绝。因此,除非对响应进行了额外的处理或抛出错误,否则返回的承诺是多余的。
由于Part.Model.updateOne已经返回了一个承诺(因为您在它上使用了.then ),我猜您可能会很像这样修剪它:
await rps_id.map((rp_id) => Part.Model.updateOne({
_id: rp_id
}, {
invoiced: invoice._id
});我真的不能测试这个,但是它应该像您的代码一样工作。
https://stackoverflow.com/questions/67826527
复制相似问题