From 85fb597c380a57b0c2c70692fb17ecb179ae2a73 Mon Sep 17 00:00:00 2001 From: Camilo Reyes Date: Sun, 23 Oct 2022 14:52:13 -0500 Subject: [PATCH] Add async/await to wrap around the Promise --- asyncPromise.js | 38 ++++++++++++++++++++++++++++++++++++++ package.json | 3 ++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 asyncPromise.js diff --git a/asyncPromise.js b/asyncPromise.js new file mode 100644 index 0000000..adc1998 --- /dev/null +++ b/asyncPromise.js @@ -0,0 +1,38 @@ +var pipeDelimiter = require('./pipeDelimiter'); + +async function run() { + await buildFerociousCats({ list: '', delimiter: pipeDelimiter }, 'Panther', getJaguar) + console.log('DONE'); +} + +function getJaguar(cat) { + return buildFerociousCats(cat, 'Jaguar', getLynx); +} + +function getLynx(cat) { + return buildFerociousCats(cat, 'Lynx', getSnowLeopard); +} + +function getSnowLeopard(cat) { + return buildFerociousCats(cat, 'Snow Leopard', getLion); +} + +function getLion(cat) { + return buildFerociousCats(cat, 'Lion', printList); +} + +function printList(cat) { + console.log(cat.list); +} + +function buildFerociousCats(cat, returnValue, next) { + return new Promise((resolve) => { + setTimeout(function asyncCall(data) { + var catList = cat.delimiter(cat.list, data); + + resolve(next({ list: catList, delimiter: cat.delimiter })); + }, 1, returnValue); + }); +} + +run().then(() => console.log('DONE DONE')); diff --git a/package.json b/package.json index fb8b82b..64b1fa2 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "callback-hell": "node callbackHell.js", "dependency-inversion": "node callbackDependencyInversion.js", "polymorphic-callback": "node callbackPolymorphic.js", - "promise": "node callbackPromise.js" + "promise": "node callbackPromise.js", + "async": "node asyncPromise.js" }, "devDependencies": { "mocha": "3.0.1",