【发布时间】:2020-07-30 10:47:13
【问题描述】:
我需要使用嵌套的 foreach 获取数据,但我无法填充我的数组。 在这段代码的末尾,我想有一个包含我的数据的数组(segId),但它是空的(因为异步)。 我读到我必须使用 Promise.all 但我不能因为我的承诺是嵌套的 我是初学者,所以我的代码远非完美 我该怎么做?
async function getActivities(strava, accessToken)
{
const payload = await strava.athlete.listActivities({'access_token':accessToken, 'after':'1595281514', 'per_page':'10'})
return payload;
}
async function getActivity(strava, accessToken, id)
{
const payload = await strava.activities.get({'access_token':accessToken, 'id':id, 'include_all_efforts':'true'})
return payload;
}
async function getSegment(strava, accessToken, id)
{
const payload = await strava.segments.get({'access_token':accessToken,'id':id})
return payload
}
var tableau = []
var segId = []
const activities = getActivities(strava, accessToken)
activities.then(value => {
value.forEach((element, index) => {
const activity = getActivity(strava, accessToken, element['id'])
activity.then(value => {
value['segment_efforts'].forEach((element, index) => {
const segment = getSegment(strava, accessToken, element['segment']['id'])
segment.then(value => {
segId.push(value['id'])
})
//console.log(segId)
});
});
})
}) console.log(segId)
问候 PS:对不起我的英语......
【问题讨论】:
-
与其发出大量请求,不如通过单个请求获取数据,然后遍历数据并填充表格。
-
你好提姆。因为我使用 Strava API 获取数据。我无法通过 1 个请求获取所有数据。问候
标签: javascript foreach promise nested