diff --git a/promises/task1.js b/promises/task1.js new file mode 100644 index 0000000..b46d33b --- /dev/null +++ b/promises/task1.js @@ -0,0 +1,7 @@ +function delayedConsoleLog(text, milliseconds) { + setTimeout(() => { + console.log(text); + }, milliseconds); + } + + delayedConsoleLog("Цей текст з'явиться через 2 секунди", 2000); \ No newline at end of file diff --git a/promises/task2.js b/promises/task2.js new file mode 100644 index 0000000..bc121a5 --- /dev/null +++ b/promises/task2.js @@ -0,0 +1,25 @@ +function fetchTodoData() { + return fetch('https://jsonplaceholder.typicode.com/todos/1') + .then(response => response.json()) + .then(data => { + console.log('Todo Data:', data); + return data; + }) + .catch(error => console.error('Fetch Todo Data Error:', error)); + } + + function fetchUserData() { + return fetch('https://jsonplaceholder.typicode.com/users/1') + .then(response => response.json()) + .then(data => { + console.log('User Data:', data); + return data; + }) + .catch(error => console.error('Fetch User Data Error:', error)); + } + + Promise.all([fetchTodoData(), fetchUserData()]) + .then(results => { + console.log('Promise.all Results:', results); + }) + .catch(error => console.error('Promise.all Error:', error)); \ No newline at end of file diff --git a/promises/task3.js b/promises/task3.js new file mode 100644 index 0000000..a1f89a2 --- /dev/null +++ b/promises/task3.js @@ -0,0 +1,39 @@ +async function fetchTodoData() { + try { + const response = await fetch('https://jsonplaceholder.typicode.com/todos/1'); + return await response.json(); + } catch (error) { + console.error('Fetch Todo Data Error:', error); + throw error; + } +} + +async function fetchUserData() { + try { + const response = await fetch('https://jsonplaceholder.typicode.com/users/1'); + return await response.json(); + } catch (error) { + console.error('Fetch User Data Error:', error); + throw error; + } +} + +async function fetchDataFromServer() { + try { + const [todoData, userData] = await Promise.all([fetchTodoData(), fetchUserData()]); + + console.log('Todo Data:', todoData); + console.log('User Data:', userData); + + return [todoData, userData]; + } catch (error) { + console.error('Fetch Data From Server Error:', error); + throw error; + } +} + +fetchDataFromServer() + .then(results => { + console.log('Async/Await Results:', results); + }) + .catch(error => console.error('Async/Await Error:', error)); \ No newline at end of file diff --git a/promises/task4.js b/promises/task4.js new file mode 100644 index 0000000..270a0da --- /dev/null +++ b/promises/task4.js @@ -0,0 +1,32 @@ +class ServerDataFetcher { + static async fetchTodoData() { + try { + const response = await fetch('https://jsonplaceholder.typicode.com/todos/1'); + const data = await response.json(); + console.log('Todo Data:', data); + return data; + } catch (error) { + console.error('Fetch Todo Data Error:', error); + throw error; + } + } + + static async fetchUserData() { + try { + const response = await fetch('https://jsonplaceholder.typicode.com/users/1'); + const data = await response.json(); + console.log('User Data:', data); + return data; + } catch (error) { + console.error('Fetch User Data Error:', error); + throw error; + } + } + } + + Promise.all([ServerDataFetcher.fetchTodoData(), ServerDataFetcher.fetchUserData()]) + .then(results => { + console.log('Promise.all Results (Class):', results); + }) + .catch(error => console.error('Promise.all Error (Class):', error)); + \ No newline at end of file