我正在处理来自API的JSON响应。 ResponseJson
包含有关类别的信息; responseJson.name
包含一个类别名称(已在控制台中测试)。现在,我想添加所有类别名称并将其存储在空数组categoryNames
中。在for循环之后,当我尝试在控制台中打印categoryNames
时它是空的,我不确定自己缺少什么。这是代码:
_getCategories = item => {
const categoryNames = [];
for (let category of item.categories) {
fetch('http://54.168.73.151/wp-json/wp/v2/categories/' + category)
.then(response => response.json())
.then(responseJson => {
var categoryName = responseJson.name;
categoryNames.push(categoryName);
})
.catch(error => {
this.setState({
isLoading: false,
isError: true,
});
console.error(error);
});
}
console.log(categoryNames);
};
这个问题被确定为可能是另一个问题的重复,但是答案是另一个问题是关于$ ajax调用的,而我正在尝试使用纯JavaScript。使用此语法有解决方案吗?
答案 0 :(得分:0)
_getCategories = item => {
const categoryNames = [];
let fetches = [];
for (let category of item.categories) {
fetches.push(fetch('http://54.168.73.151/wp-json/wp/v2/categories/' + category));
}
Promise.all(fetches).then(res => {
/* do your stuff here */
})
};
您应该Promise.all等待所有提取完成。 你可以尝试上面的代码吗?