From b0f8ea0c33ee3869a13e546c42748d725e324da8 Mon Sep 17 00:00:00 2001 From: netcam22 Date: Thu, 9 Nov 2023 00:02:52 +0000 Subject: [PATCH 1/5] feat: implement promise --- exercise001.js | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/exercise001.js b/exercise001.js index 32c3694..c34661f 100644 --- a/exercise001.js +++ b/exercise001.js @@ -1,14 +1,20 @@ const promise = new Promise((resolve, reject) => { - // Generate random number between 0 and 9 - const randomInt = Math.floor(Math.random() * 10); + // Generate random number between 0 and 9 + const randomInt = Math.floor(Math.random() * 10); - if (randomInt % 2 === 0) { - // Success - setTimeout(() => resolve('done'), 2000); - } else { - // Failure - setTimeout(() => reject('error'), 2000); - } + if (randomInt % 2 === 0) { + // Success + setTimeout(() => resolve("done"), 2000); + } else { + // Failure + setTimeout(() => reject("error"), 2000); + } }); -// Your solution(s) to exercise001 here! +promise + .then(data => { + console.log(`Yay! Promise resolved with response: ${data}`); + }) + .catch(error => { + console.log(`Boo. Promise rejected with response: ${error}`); + }); From bd0c995cf6f1f7a1de2f57aee574ab2e8d9e2682 Mon Sep 17 00:00:00 2001 From: netcam22 Date: Sun, 12 Nov 2023 15:54:51 +0000 Subject: [PATCH 2/5] feat: implement promise then catch --- exercise001.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/exercise001.js b/exercise001.js index c34661f..ee4ce43 100644 --- a/exercise001.js +++ b/exercise001.js @@ -13,8 +13,8 @@ const promise = new Promise((resolve, reject) => { promise .then(data => { - console.log(`Yay! Promise resolved with response: ${data}`); + console.log(`Yay! Promise resolved with response:${data}`); }) .catch(error => { - console.log(`Boo. Promise rejected with response: ${error}`); + console.log(`Boo. Promise rejected with response:${error}`); }); From 346e520a876b3ba09e3daafe7b6828b3ee04b9bc Mon Sep 17 00:00:00 2001 From: netcam22 Date: Sun, 12 Nov 2023 16:13:29 +0000 Subject: [PATCH 3/5] refactor: update to use async await --- exercise001.js | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/exercise001.js b/exercise001.js index ee4ce43..650015e 100644 --- a/exercise001.js +++ b/exercise001.js @@ -1,20 +1,12 @@ -const promise = new Promise((resolve, reject) => { - // Generate random number between 0 and 9 - const randomInt = Math.floor(Math.random() * 10); - +const getPromiseResponse = async (resolve, reject) => { + const randomInt = await Math.floor(Math.random() * 10); if (randomInt % 2 === 0) { - // Success - setTimeout(() => resolve("done"), 2000); + console.log(resolve); } else { - // Failure - setTimeout(() => reject("error"), 2000); + console.log(reject); } -}); - -promise - .then(data => { - console.log(`Yay! Promise resolved with response:${data}`); - }) - .catch(error => { - console.log(`Boo. Promise rejected with response:${error}`); - }); +}; +getPromiseResponse( + `Yay! Promise resolved with response:done`, + `Boo. Promise rejected with response:error` +); From 13c3c4d236b95292d02984ddf27f87706a19b9aa Mon Sep 17 00:00:00 2001 From: netcam22 Date: Sun, 12 Nov 2023 16:38:41 +0000 Subject: [PATCH 4/5] refactor: implement async await --- exercise002.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/exercise002.js b/exercise002.js index 9932585..653854e 100644 --- a/exercise002.js +++ b/exercise002.js @@ -2,11 +2,14 @@ import fetch from "node-fetch"; const jsonTypicode = "https://jsonplaceholder.typicode.com/todos/1"; -const fetchData = (apiEndPoint) => { - fetch(apiEndPoint) - .then((response) => response.json()) - .then((json) => console.log(json)) - .catch((error) => console.log(error)); -}; +async function fetchData(apiEndPoint) { + const response = await fetch(apiEndPoint); + try { + const json = await response.json(); + console.log(json); + } catch { + console.log(error); + } +} fetchData(jsonTypicode); From 0c46653a00380994c5bd90c08f41f85365063b6b Mon Sep 17 00:00:00 2001 From: netcam22 Date: Tue, 14 Nov 2023 07:11:41 +0000 Subject: [PATCH 5/5] refactor: move fetch response to catch block --- exercise001.js | 26 ++++++++++++-------------- exercise002.js | 15 +++++++++------ package.json | 3 ++- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/exercise001.js b/exercise001.js index 32c3694..650015e 100644 --- a/exercise001.js +++ b/exercise001.js @@ -1,14 +1,12 @@ -const promise = new Promise((resolve, reject) => { - // Generate random number between 0 and 9 - const randomInt = Math.floor(Math.random() * 10); - - if (randomInt % 2 === 0) { - // Success - setTimeout(() => resolve('done'), 2000); - } else { - // Failure - setTimeout(() => reject('error'), 2000); - } -}); - -// Your solution(s) to exercise001 here! +const getPromiseResponse = async (resolve, reject) => { + const randomInt = await Math.floor(Math.random() * 10); + if (randomInt % 2 === 0) { + console.log(resolve); + } else { + console.log(reject); + } +}; +getPromiseResponse( + `Yay! Promise resolved with response:done`, + `Boo. Promise rejected with response:error` +); diff --git a/exercise002.js b/exercise002.js index 9932585..a3b7de1 100644 --- a/exercise002.js +++ b/exercise002.js @@ -2,11 +2,14 @@ import fetch from "node-fetch"; const jsonTypicode = "https://jsonplaceholder.typicode.com/todos/1"; -const fetchData = (apiEndPoint) => { - fetch(apiEndPoint) - .then((response) => response.json()) - .then((json) => console.log(json)) - .catch((error) => console.log(error)); -}; +async function fetchData(apiEndPoint) { + try { + const response = await fetch(apiEndPoint); + const json = await response.json(); + console.log(json); + } catch { + console.log(error); + } +} fetchData(jsonTypicode); diff --git a/package.json b/package.json index 2889f42..1944cbb 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "doc": "docs" }, "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node docs/exercise001.js" }, "repository": { "type": "git",