【发布时间】:2021-12-21 12:23:23
【问题描述】:
我有一个小问题,我需要在 for 循环中加载页面时获取数据。我有一个异步函数返回result,它从服务器返回result,但它只显示在console.log() 中,但我的对象只有promise 对象。有人可以向我解释如何以正确的方式做到这一点吗?
JSON
let a = {
createdAt: "2021-11-06T11:03:15.917+0000",
updatedAt: "2021-11-06T11:03:15.917+0000",
version: 0,
scheduleDate: "2021-09-24",
schedule: [
{
date: "2021-09-24",
breakfast: 1,
secondBreakfast: 1,
lunch: 1,
dinner: 1,
supper: 1,
prepareTime: 55,
calorific: 33.4,
protein: 1.1,
fat: 0.2,
carbohydrates: 7.1,
roughage: 0.4,
},
{
date: "2021-09-25",
breakfast: 1,
secondBreakfast: 1,
lunch: 1,
dinner: 1,
supper: 1,
prepareTime: 55,
calorific: 33.4,
protein: 1.1,
fat: 0.2,
carbohydrates: 7.1,
roughage: 0.4,
},
{
date: "2021-09-26",
breakfast: 1,
secondBreakfast: 1,
lunch: 1,
dinner: 1,
supper: 1,
prepareTime: 55,
calorific: 33.4,
protein: 1.1,
fat: 0.2,
carbohydrates: 7.1,
roughage: 0.4,
},
{
date: "2021-09-27",
breakfast: 1,
secondBreakfast: 1,
lunch: 1,
dinner: 1,
supper: 1,
prepareTime: 55,
calorific: 33.4,
protein: 1.1,
fat: 0.2,
carbohydrates: 7.1,
roughage: 0.4,
},
{
date: "2021-09-28",
breakfast: 1,
secondBreakfast: 1,
lunch: 1,
dinner: 1,
supper: 1,
prepareTime: 55,
calorific: 33.4,
protein: 1.1,
fat: 0.2,
carbohydrates: 7.1,
roughage: 0.4,
},
{
date: "2021-09-29",
breakfast: 1,
secondBreakfast: 1,
lunch: 1,
dinner: 1,
supper: 1,
prepareTime: 55,
calorific: 33.4,
protein: 1.1,
fat: 0.2,
carbohydrates: 7.1,
roughage: 0.4,
},
{
date: "2021-09-30",
breakfast: 1,
secondBreakfast: 1,
lunch: 1,
dinner: 1,
supper: 1,
prepareTime: 55,
calorific: 33.4,
protein: 1.1,
fat: 0.2,
carbohydrates: 7.1,
roughage: 0.4,
},
],
memberId: 1,
id: 49,
};
this.parseMemberScheduleData(a);
parseMemberScheduleData(aSchedule) {
let arr = [];
for (let i = 0; i < aSchedule.schedule.length; i++) {
arr.push({
data: aSchedule.schedule[i].date,
meals: {
breakfast: this.fetchMealDetails(aSchedule.schedule[i].breakfast),
secondBreakfast: this.fetchMealDetails(
aSchedule.schedule[i].secondBreakfast
),
dinner: this.fetchMealDetails(aSchedule.schedule[i].dinner),
lunch: this.fetchMealDetails(aSchedule.schedule[i].lunch),
supper: this.fetchMealDetails(aSchedule.schedule[i].supper),
},
mealsId: {
breakfast: aSchedule.schedule[i].breakfast,
secondBreakfast: aSchedule.schedule[i].secondBreakfast,
dinner: aSchedule.schedule[i].dinner,
lunch: aSchedule.schedule[i].lunch,
supper: aSchedule.schedule[i].supper,
},
});
}
async fetchMealDetails(aId) {
let requestOptions = {
method: "GET",
redirect: "follow",
};
try {
let responce = await fetch(`${MEALS}${aId}`, requestOptions);
let result = await responce.json();
console.log("~ result", result);
return result;
} catch (err) {
console.log(err);
}
},
【问题讨论】:
标签: javascript async-await fetch