我很难在这里看到什么错。我拉了一些json(是的,我知道我用的是文本文件)。我在全局范围内有一个数组,我希望将条目推送到,我在json上迭代并将其推送到该数组。只有当我注销它时它才是空的。它可能是一些愚蠢的东西,但任何帮助都会非常感激。
let charities = [];
fetch('../mapdata/markers.txt').then(response => {
if (response.ok) {
return response.json();
}
throw new Error('Network response error.');
})
.then(charData => {
console.log(`inside: ${JSON.stringify(charData, null, 2)}`);
charData.map(entry => {
return charities.push(entry);
});
})
.catch(error => {
console.log('There has been a problem: ', error.message);
});
console.log(`outside: ${JSON.stringify(charities, null, 2)}`);
而且我认为这可能是一个异步问题...
答案 0 :(得分:1)
您正在执行异步操作并在触发asyc操作后读取[]。它将永远是空的。
相反,然后输入console.log(outside: ${JSON.stringify(charities, null, 2)}
);在数据被推入数组之后,在第二个then()之内。
.then(charData => {
console.log(`inside: ${JSON.stringify(charData, null, 2)}`);
charData.map(entry => {
return charities.push(entry);
});
console.log(outside: ${JSON.stringify(charities, null, 2)});
})