【发布时间】:2021-02-15 13:29:59
【问题描述】:
我正在尝试在对象数组中创建过滤数组。我这样做是通过在 forEach 中运行 case switch 并派生一个将其附加到新对象的新数组并将该对象推送到存储在 foreach 之外的数组来实现的。但是在运行 foreach 之后,外部数组的长度仍然显示为 0,等式的其余部分与所述数组的处理有关。它有两个非常大的代码块,所以我试图编辑一些。
let updatedDrop = []
drop.forEach(async(tollFree) => {
const zipCodes = Object.values(tollFree)[0].split(",");
let updatedList = []
const {
tracking,
mailList,
} = tollFree;
zips = await Zip.find({
"class": { "$in": zipCodes },
});
zips = zips.map(zip => zip.zip4)
switch (zipCodeSuppress) {
case "keepSelect":
(insert case switch)
break;
}
const distinct = (value, index, self) => {
return self.indexOf(value) === index;
};
updatedList = updatedList.flat()
updatedList = updatedList.filter(distinct)
const combinedCost = unitCost + postageCeiling
const dropItem = {
updatedList,
tracking,
}
updatedDrop.push(dropItem)
//console.log(dropItem)
})
console.log(updatedDrop.length)
let advJobs = [];
let cspJobs = [];
let wbJobs = [];
if (updatedDrop.length > 0){ .....
所以在我能够访问更新的异步数据之前,公式的其余部分都会停止。我该怎么做?
【问题讨论】:
标签: javascript arrays foreach async-await