我遇到了为反应应用预取资源的问题。我有一个函数应该获取json资源并将它们分配给循环中的对象属性。然后该函数应该返回具有已经解析的jsons的对象,但不是它返回具有未解析的promises属性的对象。
是否可以在promises完全填充之前停止执行js代码,以便函数返回正确的数据?
是的,类似于同步请求。
async function getJson (file, url) {
const response = await fetch(`${url}/${file}.json`);
const json = await response.json();
return json;
}
async function getTranslations(files, url) {
let r = {};
files.map( (file, i) => {
r[file] = await getJson(file, url);
});
return r;
}
答案 0 :(得分:0)
我认为你不应该像这样使用'map' - 用forEach填充你更好的对象。虽然我无法保证这是问题所在。
async function getTranslations(files, url) {
let r = {};
files.forEach(file => r[file] = await getJson(file, url));
return r;
}