如何同步运行异步javascript代码?

时间:2021-07-07 02:18:58

标签: javascript angular

我正在过滤一个数组并将新返回的数组存储到另一个数组中,然后执行一些操作,但过滤器函数没有完成,编译器到达下一行。我怎样才能让编译器停止直到过滤器函数完成,这样我就不会在下面得到未定义的信息。

            let pricePublishData = [{isInternalBp: 'Y'}, {isInternalBp: 'N'}]
            let arr1 = [];
            let arr2 = [];

               arr1 = pricePublishData.filter(item => item.isInternalBp == 'Y');

               arr2 = pricePublishData.filter(item => item.isInternalBp != 'Y');

              const fc = [];

              arr1.forEach(ca => {
                arr2.forEach(cd => {
                  if (
                    ca.bpName == cd.corporate &&
                    cd.userType == 'Grower' &&
                    cd.fulfillmentStatus == 'Not Fulfilled' &&
                    cd.itemOpenQuantityInBase > 0
                  ) {
                    fc.push(cd);
                  }
                });
              });
  
              let combinedAcquirers = [];
  
            
            const fca = fc.map({key: item.corporate, value: item.corporate});
            combinedAcquirers = [...fca, arr2.map({key:item.bpName, value: item.bpName})];
          


问题是当 arr1 还没有值时,代码会直接到达 foreach 循环。我如何确保 arr1 在到达 foreach 循环之前具有值,以便它不会出现未定义的错误。

0 个答案:

没有答案