async await 异步调用ajax, Promise.all:
需求:
一共3个 ajax请求:
先 拿到 第一个 ajax的结果是一个数组。 length=x(同步)
循环遍历发 x次 第二个请求。(异步发出)
第二个请求都结束后,将第二个请求的结果的数组,作为第三个请求的参数发出(同步)
async sendMessage(val) {
try {
const copilotResList = await this.copilotQuestion(val);
let copilot10Answers = [];
const copilotAnswersPromises = copilotResList.map(item => {
const paramsChat = {
a:item.id
}
return this.getChatCopilotAnswer(paramsChat).then(copilotAnswerItem => {
const reportList = [...copilotAnswerItem.report_list, ...copilotAnswerItem.google_news_list];
copilot10Answers.push({
topic: item["topic"],
chatgpt_answer: copilotAnswerItem.answer,
report_list: reportList,
_id: item["_id"],
});
});
});
await Promise.all(copilotAnswersPromises);
const analyzeResult = await this.analyzeCopilotAnswers(copilot10Answers);
} catch (error) {
console.error('sendMessage encountered an error:', error);
}
}