程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了通过 map() 函数向对象添加新的键/值 - 异步承诺返回一个挂起的承诺而不是值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决通过 map() 函数向对象添加新的键/值 - 异步承诺返回一个挂起的承诺而不是值?

开发过程中遇到通过 map() 函数向对象添加新的键/值 - 异步承诺返回一个挂起的承诺而不是值的问题如何解决?下面主要结合日常开发的经验,给出你关于通过 map() 函数向对象添加新的键/值 - 异步承诺返回一个挂起的承诺而不是值的解决方法建议,希望对你解决通过 map() 函数向对象添加新的键/值 - 异步承诺返回一个挂起的承诺而不是值有所启发或帮助;

我在我的代码中得到了一个挂起的 Promise,而不是获取值:

let projects = [{ projectnr: null,contract: '4055' },{ projectnr: '040200 FAS-U2',contract: '4056' },{ projectnr: null,contract: '4057' }];

projects = (projects.map( async function(pro) {
            
            pro.articles = await Articleservice().getArticlesByRange(pro.contract);

            return pro;
        }))

const getArticlesByRange= async (contract) => {
        const db = await CompanyDbConnection.Get();
        const command = Articlequeryservice().getArticlesFromLagerInRange(contract);
        const result = await db.query(command);
        let articleResult = result.result;

        if (articleResult.length > 0) {
            articleResult = articleresult[0];
        }
        return articleResult;
    }

Articlequeryservice().getArticlesFromLagerInRange 返回一个字符串查询。目的是将获取的数据(数字数组)分配给其项目。 map() 是最好的方法吗?

解决方法

使用 Promise.all 将 Promise 数组转换为结果 Promise

const response = Promise.all(projects.map(async function (project) {
   const { contract } = project;      
   const articles = await Articleservice().getArticlesByRange(contract);
   return { ...project,articles };
}))

我不鼓励你改变 projects。最好有您所在州的不同快照。

大佬总结

以上是大佬教程为你收集整理的通过 map() 函数向对象添加新的键/值 - 异步承诺返回一个挂起的承诺而不是值全部内容,希望文章能够帮你解决通过 map() 函数向对象添加新的键/值 - 异步承诺返回一个挂起的承诺而不是值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:-map()通过