因为执行的方法可能数据还没有彻底更新完,所以需要在彻底执行完for循环后执行方法。
解决方法:
通过clearTimeout来清除定时器,for循环执行结束之后执行setTimeout中的内容
var time
for(let i = 0;i<res.length;i++){
let data = {}
data.medicalApplianceName = res[i].medicalApplianceName
let medicalApplianceId = res[i].id
Medicalappliancedata.find({
where:{
medicalApplianceId
}
}).then(resList=>{
data.list = resList
ManufacturerList.push(data)
console.log(data);
})
clearTimeout(time)
time = setTimeout(() => {
cb(null,ManufacturerList);
}, 100)
}