重构 nodejs 以进行维护的问题
problem with refactoring nodejs for maintenance
所以下面的代码是函数式的,只是一个函数有不同的规范,但我有点怀疑,我相信它看起来很难看,特别是回调,它真的需要重构,关于如何重构它的任何想法可维护并克服缺陷?
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
非常感谢你的帮助,提前致谢
您已经使用了 await
,因此我建议更改所有代码以使用 async/await 以保持一致性。
箭头函数中返回的Promise实际上没有任何作用。您在 .then
内解决并在 .catch
内拒绝。因此,除非对响应或抛出的错误进行了一些额外的处理,否则返回的承诺是多余的。
因为 Part.Model.updateOne
已经 returns 一个承诺(因为你在上面使用 .then
),我猜你可能 trim 它很像所以:
await rps_id.map((rp_id) => Part.Model.updateOne({
_id: rp_id
}, {
invoiced: invoice._id
});
我真的无法测试它,但它应该像您的代码一样工作。
所以下面的代码是函数式的,只是一个函数有不同的规范,但我有点怀疑,我相信它看起来很难看,特别是回调,它真的需要重构,关于如何重构它的任何想法可维护并克服缺陷?
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
非常感谢你的帮助,提前致谢
您已经使用了 await
,因此我建议更改所有代码以使用 async/await 以保持一致性。
箭头函数中返回的Promise实际上没有任何作用。您在 .then
内解决并在 .catch
内拒绝。因此,除非对响应或抛出的错误进行了一些额外的处理,否则返回的承诺是多余的。
因为 Part.Model.updateOne
已经 returns 一个承诺(因为你在上面使用 .then
),我猜你可能 trim 它很像所以:
await rps_id.map((rp_id) => Part.Model.updateOne({
_id: rp_id
}, {
invoiced: invoice._id
});
我真的无法测试它,但它应该像您的代码一样工作。