首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于维护的nodejs重构问题

用于维护的nodejs重构问题
EN

Stack Overflow用户
提问于 2021-06-03 17:58:22
回答 1查看 44关注 0票数 1

因此,下面的代码是功能性的,只是一个随规格变化的函数,但我有点怀疑,我认为它看起来很难看,特别是回调,它真的需要重构,对于如何重构它来维护和克服缺陷有什么想法?

代码语言:javascript
复制
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

我非常感谢你的帮助,谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-03 18:19:30

您已经使用了await,因此我建议将所有代码更改为使用异步/等待以保持一致性。

箭头函数中返回的承诺实际上并没有达到目的。在.then中解析,在.catch中拒绝。因此,除非对响应进行了额外的处理或抛出错误,否则返回的承诺是多余的。

由于Part.Model.updateOne已经返回了一个承诺(因为您在它上使用了.then ),我猜您可能会很像这样修剪它:

代码语言:javascript
复制
await rps_id.map((rp_id) => Part.Model.updateOne({
            _id: rp_id
        }, {
            invoiced: invoice._id
        });

我真的不能测试这个,但是它应该像您的代码一样工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67826527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档