53 lines
1.2 KiB
JavaScript
53 lines
1.2 KiB
JavaScript
const el = document.querySelector('#ele');
|
|
|
|
function parse(data) {
|
|
return new Promise((resolve, reject) => {
|
|
const name = data.name;
|
|
if (!name || !['Jan', 'Zuzia', 'Jakub'].includes(name)) {
|
|
reject(new Error('Invalid name in JSON'));
|
|
} else {
|
|
resolve(name);
|
|
}
|
|
});
|
|
}
|
|
|
|
function delay(ms) {
|
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
}
|
|
|
|
|
|
function f1 (url='./data/data.json') {
|
|
|
|
return fetch (url)
|
|
.then( (res) => {
|
|
|
|
if (!res.ok) {
|
|
throw new Error(`HTTP error! status: ${res.status}`);
|
|
}
|
|
|
|
return res.json();
|
|
})
|
|
.then ( (data) => {
|
|
|
|
return parse(data);
|
|
// el.textContent = parse(data);
|
|
|
|
console.log ("ok");
|
|
})
|
|
.then((name) => {
|
|
|
|
// Dodajemy opóźnienie przed aktualizacją treści elementu
|
|
return delay(5000).then(() => name); // Opóźnienie 2 sekundy
|
|
})
|
|
.then ((name)=>{
|
|
console.log("5s");
|
|
el.textContent = name;
|
|
})
|
|
.catch(error => {
|
|
console.error('Error http request or parsing JSON:', error);
|
|
});
|
|
|
|
}
|
|
|
|
f1()
|