tengo funcion:
function getLangFile(name, version) { var lang; lang = "nothing"; let url = "./" + version + "/" + name + ".json"; fetch(url) .then((response) => response.text()) .then((data) => { setLangToData(data); }); }y
function setLangToData(data) { lang = data } y quiero ejecutar getLangFile("en_gb", "1.18") , y cuando obtenga los datos, ejecute getLangFile("de_de", "1.18") y luego someAnotherFunction()
Sé que la solución es algo con devolución de llamada o promesas, pero no lo entiendo y quiero aprenderlo más tarde. Tengo un proyecto simple para principiantes, pero no puede funcionar sin esto. Gracias por cualquier ayuda
async function test(){ const res1 = await getLangFile("en_gb", "1.18"); const res2 = await getLangFile("de_de", "1.18"); const res3 = await someAnotherFunction(); }doc:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await
Puedes intentar algo como esto,
const makeHttp = function (url) { return new Promise(function (resolve, reject) { fetch(url).then((response) => { resolve(response.text()); }); }); }; (async function () { // 1st call await makeHttp("./version1/name.json"); // 2nd call await makeHttp("./version2/name.json"); })();