From 636a6a46333125acba38eeb48f8f79784620e637 Mon Sep 17 00:00:00 2001 From: ChrissyDev Date: Mon, 26 Feb 2024 18:46:58 +0200 Subject: [PATCH 1/2] homework ten --- promises/task1.js | 7 +++++++ promises/task2.js | 25 +++++++++++++++++++++++++ promises/task3.js | 23 +++++++++++++++++++++++ promises/task4.js | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+) create mode 100644 promises/task1.js create mode 100644 promises/task2.js create mode 100644 promises/task3.js create mode 100644 promises/task4.js diff --git a/promises/task1.js b/promises/task1.js new file mode 100644 index 0000000..07632e5 --- /dev/null +++ b/promises/task1.js @@ -0,0 +1,7 @@ +function delayedOutput(text, milliseconds) { + setTimeout(() => { + console.log(text); + }, milliseconds); + } + + delayedOutput("Цей текст з'явиться через 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..a2af953 --- /dev/null +++ b/promises/task3.js @@ -0,0 +1,23 @@ +async function fetchDataFromServer() { + try { + const todoResponse = await fetch('https://jsonplaceholder.typicode.com/todos/1'); + const userResponse = await fetch('https://jsonplaceholder.typicode.com/users/1'); + + const todoData = await todoResponse.json(); + const userData = await userResponse.json(); + + 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 From c33d65a988551e37d9c7ffec661c246588ee2504 Mon Sep 17 00:00:00 2001 From: ChrissyDev Date: Sun, 3 Mar 2024 18:04:02 +0200 Subject: [PATCH 2/2] edited homework ten, task 1 and 3 --- promises/task1.js | 4 ++-- promises/task3.js | 46 +++++++++++++++++++++++++++++++--------------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/promises/task1.js b/promises/task1.js index 07632e5..b46d33b 100644 --- a/promises/task1.js +++ b/promises/task1.js @@ -1,7 +1,7 @@ -function delayedOutput(text, milliseconds) { +function delayedConsoleLog(text, milliseconds) { setTimeout(() => { console.log(text); }, milliseconds); } - delayedOutput("Цей текст з'явиться через 2 секунди", 2000); \ No newline at end of file + delayedConsoleLog("Цей текст з'явиться через 2 секунди", 2000); \ No newline at end of file diff --git a/promises/task3.js b/promises/task3.js index a2af953..a1f89a2 100644 --- a/promises/task3.js +++ b/promises/task3.js @@ -1,23 +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 todoResponse = await fetch('https://jsonplaceholder.typicode.com/todos/1'); - const userResponse = await fetch('https://jsonplaceholder.typicode.com/users/1'); - - const todoData = await todoResponse.json(); - const userData = await userResponse.json(); - + try { + const [todoData, userData] = await Promise.all([fetchTodoData(), fetchUserData()]); + console.log('Todo Data:', todoData); console.log('User Data:', userData); - + return [todoData, userData]; - } catch (error) { + } catch (error) { console.error('Fetch Data From Server Error:', error); throw error; - } } - - fetchDataFromServer() - .then(results => { +} + +fetchDataFromServer() + .then(results => { console.log('Async/Await Results:', results); - }) - .catch(error => console.error('Async/Await Error:', error)); \ No newline at end of file + }) + .catch(error => console.error('Async/Await Error:', error)); \ No newline at end of file