1 回答

TA貢獻1836條經(jīng)驗 獲得超13個贊
異步函數(shù)都沒有開始處理,打出來的值當(dāng)然是空了;需要執(zhí)行完后才有結(jié)果
let timeLine = req.body.timeLine; // ['2018-1', '2018-2', '2018-3', '2018-4', '2018-5', '2018-6', '2018-7', '2018-8', '2018-9', '2018-10', '2018-11', '2018-12']
let loadDepartment = ['南京南', '南京所', '合肥南', '徐州東'];
let result = [];
let promises = loadDepartment.map((department, index, arr) => {
async function loadData(condition) {
let client = await getMGClient(url);
let db = client.db(dbName);
let coll = db.collection('JLarrange');
let dataInDB = await coll.find(condition).toArray();
return dataInDB[0];
}
let tempdata = [];
let promises1 = []
for (let index in timeLine) {
console.log(index)
let condition = {
department,
tableName: timeLine[index]
}
promises1.push(loadData(condition).then(dataInDB => {
let monthTime = 0;
if (!!dataInDB) {
//數(shù)據(jù)存在
for (let dataindex in dataInDB.data) {
monthTime += dataInDB.data[dataindex].workTime;
}
}
tempdata.push(monthTime)
console.log(tempdata) //這里輸出的tempdata有值
}))
}
console.log(tempdata) //這里輸出的tempdata全部為[]**
return Promise.all(promises1).then(() => {
result.push({
department: department,
data: tempdata
});
})
})
Promise.all(promises).then(() => {
console.log(result);
})
添加回答
舉報