'use strict';
// MODULE
let DataModule = (function() {
let postsData;
// Получить данные из JSON файла
async function getData(callback) {
let responce = await fetch('js/articles.json');
if(responce.ok) {
responce.json().then(function(json) {
callback(json);
});
}
};
function setData(data) {
postsData = data;
console.log(postsData); // Вывод: {1: {…}, 2: {…}, 3: {…}}
}
return {
test: () => {
getData(setData);
console.log(postsData); // Вывод: undefined
}
}
}());
getData(setData); // асинхронный запрос, т.е. данные будут получены не сразу
console.log(postsData); // выполняется сразу после вызова getData, не дожидаясь загрузки данных, поэтому undefined
getData(data => {
...
});