javascript - 重构nodejs进行维护的问题
问题描述
所以下面的代码是功能性的,只是一个具有不同规格的函数,但我有点怀疑,我相信它看起来特别丑陋的回调,它真的需要重构,关于如何重构它的任何想法是可维护和克服的缺陷?
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 实际上没有任何作用。您在 a 内解析.then
并在 a 内拒绝.catch
。因此,除非对响应或抛出的错误进行了一些额外的处理,否则返回的 Promise 是多余的。
由于Part.Model.updateOne
已经返回了一个承诺(因为你正在使用.then
它),我猜你可能会像这样修剪它:
await rps_id.map((rp_id) => Part.Model.updateOne({
_id: rp_id
}, {
invoiced: invoice._id
});
我真的不能测试这个,但它应该像你的代码一样工作。
推荐阅读
- xamarin.forms - Xamarin Forms WebView Navigated 事件未在 iOS 上持续触发
- java - 使用 Java Faker 生成唯一的随机邮政编码
- regex - 检查有效的部分散列字符串
- php - 如何组合这两个数组?
- python - 在页面加载中设置 pyqt5 上的表值会引发 AttributeError
- c++ - 前向声明带有派生类模板参数的函数
- java - JSON 对象到 BODY 发布者
- javascript - 获取输入框的值并将其放入“let”变量中
- python - 我的随机替换系统替换了错误的项目
- php - 将特定的 XML 转换为 PHP 数组