【问题标题】:problem with refactoring nodejs for maintenance重构nodejs进行维护的问题
【发布时间】:2021-06-03 17:58:22
【问题描述】:

所以下面的代码是功能性的,只是一个具有不同规格的函数,但我有点怀疑,我认为它特别带有回调看起来很难看,它真的需要重构,关于如何重构它的任何想法可维护和克服缺陷?

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

非常感谢您的帮助,在此先感谢

【问题讨论】:

    标签: javascript node.js refactoring


    【解决方案1】:

    您已经使用了await,所以我建议将所有代码更改为使用 async/await 以保持一致性。

    箭头函数内返回的 Promise 实际上没有任何作用。您在 .then 内解析并在 .catch 内拒绝。因此,除非对响应或抛出的错误进行了一些额外的处理,否则返回的 Promise 是多余的。

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

    await rps_id.map((rp_id) => Part.Model.updateOne({
                _id: rp_id
            }, {
                invoiced: invoice._id
            });
    

    我无法对此进行测试,但它应该可以像您的代码一样工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 2010-09-06
      相关资源
      最近更新 更多