首页 > 解决方案 > 我的数组返回多次打印相同的对象,使用 await Promise.all 和 map()

问题描述

当我打印数组的长度时,它是 3,所以基本上 arr[0]、arr[1]、arr[2] 包含相同的对象,为什么会这样返回的数组的长度应该是包含所有对象的长度 1。

const arr = await Promise.all(
          ratingsArr.map(async (rating) => {
            const pmRatingObj = {
              rateeId: rating.employeeId,
              createdAt: rating.createdAt,
              updatedAt: rating.updatedAt,
              rateeType: 'employee',
              raterId: rating.projectManagerId,
              freeze: rating.PMFreeze,
            };
            const pmRatingId = await queryInterface.bulkInsert('ratings', [pmRatingObj]);
            // console.log(pmRatingId);
    
            const archRatingObj = {
              rateeId: rating.employeeId,
              createdAt: rating.createdAt,
              updatedAt: rating.updatedAt,
              rateeType: 'employee',
              raterId: rating.projectArchitectId,
              freeze: rating.PMFreeze,
            };
            const archRatingId = await queryInterface.bulkInsert('ratings', [archRatingObj]);
    
            const pmArr = await createPMAttributes(pmRatingId, rating);
            pmArr.map((pm) => {
              newArr.push(pm);
            });
            const archArr = await createArchAttributes(archRatingId, rating);
            archArr.map((arch) => {
              newArr.push(arch);
            });
    
            return newArr;
    
            
          }),
        );

标签: javascriptasynchronousasync-awaitpromisepromise.all

解决方案


推荐阅读