1 回答

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
const testIt = (subjectsArray)=> {
return subjectsArray.map((id) => {
return SubjectsServes.getById(knexInstance, id);
}).reduce((acc,el)=>{
acc.push(el);
return acc;
},[])
//return array of promises
}
const addSubject = (knexInstance, users, res) => {
Promise.all(
users.reduce((acc,el)=>{
acc.push(TutorsSubjectsService.getAllSubjectsForATutor(knexInstance, el.user_id)); return acc;
},[])
).then((userResults) => {
//resolve all promises userResult is an array of result from promises above
Promise.all( userResults.reduce((acc,el)=>{
//for each user create array of promises given the subject list
acc = acc.concat(testIt(el))
} ,[]).then((results)=>{
return res.status(200).send(result);
}).catch( (err)=>{
console.log(err);
return res.status(500).end();
} )
})
.catch(err => {
console.log(err);
return res.status(500).end();
})
}
當(dāng)你 .then() 這意味著你正在解決承諾。所以沒(méi)有返回到 promise.all。 Promise.all().then( result=>{} )
result 是 promises 的輸出數(shù)組。你必須將所有的承諾鏈接在一起。它們是異步的,2 個(gè)承諾都同時(shí)運(yùn)行。所以你的結(jié)果名稱將是不明確的,可能是初始值(空數(shù)組)
添加回答
舉報(bào)