From 9776134e69abc38f9df3f4d90d3a2c8905a6f7a9 Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Sat, 21 Apr 2018 03:20:19 -0400 Subject: [PATCH 01/14] initial commit --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c32c34d..feea0b6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # assignment_async_nodejs -Async Node.js sprint + +by Brennan Fulmer From 77aa49f042062881f8bb6b0253ea1d361f70909c Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Tue, 24 Apr 2018 15:24:00 -0400 Subject: [PATCH 02/14] added base file structure --- index.js | 8 ++++++++ package.json | 19 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 index.js create mode 100644 package.json diff --git a/index.js b/index.js new file mode 100644 index 0000000..509c045 --- /dev/null +++ b/index.js @@ -0,0 +1,8 @@ + +/* + cd Documents/Viking/Node/async +*/ + + + +// spacing diff --git a/package.json b/package.json new file mode 100644 index 0000000..fc11616 --- /dev/null +++ b/package.json @@ -0,0 +1,19 @@ +{ + "name": "async", + "version": "1.0.0", + "description": "asynchronous node programming practice", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/BrennanFulmer/assignment_async_nodejs.git" + }, + "author": "Brennan", + "license": "ISC", + "bugs": { + "url": "https://github.com/BrennanFulmer/assignment_async_nodejs/issues" + }, + "homepage": "https://github.com/BrennanFulmer/assignment_async_nodejs#readme" +} From c3916a913e4eb16e71142fc421bb3aaaf8c12d71 Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Tue, 24 Apr 2018 18:45:13 -0400 Subject: [PATCH 03/14] first excercise completed --- README.md | 2 ++ index.js | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/README.md b/README.md index feea0b6..107f59e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ # assignment_async_nodejs by Brennan Fulmer + +Just some asynchronous Node.js practice exercises diff --git a/index.js b/index.js index 509c045..c22e67a 100644 --- a/index.js +++ b/index.js @@ -3,6 +3,30 @@ cd Documents/Viking/Node/async */ +function paused() { + // empty on purpose +} + +var greet = new Promise(function(resolve, reject) { + resolve("Hello Promise!"); +}); + +greet.then(function(greeting) { + setTimeout(() => { + console.log(greeting); + }, 1000); +}); + + + + + + + + + +console.log("I ran"); + // spacing From 14735d59d5eeb37532e42fccb9c4c02977a28589 Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Tue, 24 Apr 2018 22:49:12 -0400 Subject: [PATCH 04/14] completed second excercise --- index.js | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/index.js b/index.js index c22e67a..a84c3ec 100644 --- a/index.js +++ b/index.js @@ -3,10 +3,7 @@ cd Documents/Viking/Node/async */ -function paused() { - // empty on purpose -} - +// create a promise that resolves "Hello Promise!" after one second using .then var greet = new Promise(function(resolve, reject) { resolve("Hello Promise!"); }); @@ -17,16 +14,43 @@ greet.then(function(greeting) { }, 1000); }); +/* Create a delay(milliseconds) function that should return a promise that +resolves the value milliseconds after delaying for the specified number of +milliseconds */ + +function delay(milliseconds) { + return new Promise((resolve, reject) => { + setTimeout(() => { + if (milliseconds > 0) { + console.log(milliseconds); + resolve(milliseconds); + } else { + console.log("Done!") + } + }, milliseconds); + }); +} +function countDown(ms) { + return delay(ms - 100); +} +delay(1000) + .then(countDown) + .then(countDown) + .then(countDown) + .then(countDown) + .then(countDown) + .then(countDown) + .then(countDown) + .then(countDown) + .then(countDown) + .then(countDown) + .then(countDown); -console.log("I ran"); - - - // spacing From ce31b6cc6d59e0d8ba7884cd1719b1cc3a64ae6e Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Tue, 24 Apr 2018 23:46:56 -0400 Subject: [PATCH 05/14] finished 3rd excercise --- index.js => warmups.js | 54 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 3 deletions(-) rename index.js => warmups.js (53%) diff --git a/index.js b/warmups.js similarity index 53% rename from index.js rename to warmups.js index a84c3ec..c6bf7de 100644 --- a/index.js +++ b/warmups.js @@ -3,7 +3,9 @@ cd Documents/Viking/Node/async */ -// create a promise that resolves "Hello Promise!" after one second using .then +/* +create a promise that resolves "Hello Promise!" after one second using .then + var greet = new Promise(function(resolve, reject) { resolve("Hello Promise!"); }); @@ -14,9 +16,12 @@ greet.then(function(greeting) { }, 1000); }); -/* Create a delay(milliseconds) function that should return a promise that +*/ + +/* +Create a delay(milliseconds) function that should return a promise that resolves the value milliseconds after delaying for the specified number of -milliseconds */ +milliseconds function delay(milliseconds) { return new Promise((resolve, reject) => { @@ -47,6 +52,49 @@ delay(1000) .then(countDown) .then(countDown) .then(countDown); +*/ + +/* +Create a function that accepts a number and returns a promise that resolves +that number squared, reject if not passed a number, and map an array of +numbers 1-9 to the function using promise.all + +var integers = [1,2,3,4,5,6,7,8,9]; + +function squared(number) { + var square = new Promise((resolve, reject) => { + if (isNaN(number)) { + reject("Argument wasn't a number"); + } else { + resolve(number * number); + } + }); + return square; +} + +Promise.all(integers.map(squared)).then(results => { + console.log(results); +}); +*/ + +// excercise four + + + + + + + + + + + + + + + + + From bf4ab68d1ddcc1801cfa651cdfc4b180f7a1d339 Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Wed, 25 Apr 2018 01:21:18 -0400 Subject: [PATCH 06/14] finished 4th excercise --- warmups.js => warmup.js | 81 +++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 47 deletions(-) rename warmups.js => warmup.js (51%) diff --git a/warmups.js b/warmup.js similarity index 51% rename from warmups.js rename to warmup.js index c6bf7de..5d9fe08 100644 --- a/warmups.js +++ b/warmup.js @@ -1,11 +1,5 @@ -/* - cd Documents/Viking/Node/async -*/ - -/* -create a promise that resolves "Hello Promise!" after one second using .then - +// create a promise that resolves "Hello Promise!" after one second using .then var greet = new Promise(function(resolve, reject) { resolve("Hello Promise!"); }); @@ -16,13 +10,9 @@ greet.then(function(greeting) { }, 1000); }); -*/ - -/* -Create a delay(milliseconds) function that should return a promise that +/* Create a delay(milliseconds) function that should return a promise that resolves the value milliseconds after delaying for the specified number of -milliseconds - +milliseconds */ function delay(milliseconds) { return new Promise((resolve, reject) => { setTimeout(() => { @@ -30,7 +20,8 @@ function delay(milliseconds) { console.log(milliseconds); resolve(milliseconds); } else { - console.log("Done!") + console.log("Done!"); + // throw new Error("Done!"); } }, milliseconds); }); @@ -52,53 +43,49 @@ delay(1000) .then(countDown) .then(countDown) .then(countDown); -*/ -/* -Create a function that accepts a number and returns a promise that resolves +/* Create a function that accepts a number and returns a promise that resolves that number squared, reject if not passed a number, and map an array of -numbers 1-9 to the function using promise.all - -var integers = [1,2,3,4,5,6,7,8,9]; +numbers 1-9 to the function using promise.all */ +var integers = [1, 2, 3, 4, 5, 6, 7, 8, 9]; function squared(number) { - var square = new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { if (isNaN(number)) { reject("Argument wasn't a number"); } else { resolve(number * number); } }); - return square; } Promise.all(integers.map(squared)).then(results => { console.log(results); }); -*/ - -// excercise four - - - - - - - - - - - - - - - - - - - - - +/* basically play with the differences between then with and without catch and +vice versa */ +function doBadThing(forRealz) { + var baddest = new Promise((resolve, reject) => { + if (forRealz == false) { + resolve("Yay!"); + } else if (forRealz == true) { + reject("Only false will resolve"); + } + }); + baddest.then( + (response) => { + console.log(response); + }, + (broke) => { + console.log(broke); + } + ); + baddest.catch(error => { + console.log(error); + }); + return baddest; +} -// spacing +doBadThing(true); +doBadThing(false); From 2c46dde671c047093be697420e81a66c4dca146d Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Wed, 25 Apr 2018 01:22:16 -0400 Subject: [PATCH 07/14] starting on next set of excercises --- file_ops.js | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 file_ops.js diff --git a/file_ops.js b/file_ops.js new file mode 100644 index 0000000..b1925d2 --- /dev/null +++ b/file_ops.js @@ -0,0 +1,4 @@ + +/* + cd Documents/Viking/Node/async +*/ From 4e7098d5435d32e230436fc67e22c533c261477a Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Wed, 25 Apr 2018 16:45:11 -0400 Subject: [PATCH 08/14] added files, and tested out some fs methods --- .gitignore | 1 + dummy.txt | 1 + file_ops.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ package-lock.json | 13 +++++++++++++ package.json | 5 ++++- 5 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 dummy.txt create mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/dummy.txt b/dummy.txt new file mode 100644 index 0000000..7ab9e75 --- /dev/null +++ b/dummy.txt @@ -0,0 +1 @@ +testexample \ No newline at end of file diff --git a/file_ops.js b/file_ops.js index b1925d2..ce548b1 100644 --- a/file_ops.js +++ b/file_ops.js @@ -2,3 +2,48 @@ /* cd Documents/Viking/Node/async */ + +const fs = require('fs'); + +fs.readFile('dummy.txt', 'utf8', (err, data) => { + if (err) throw err; + console.log('I read "' + data + '"'); +}); + +fs.writeFile('dummy.txt', 'test', 'utf8', (err) => { + if (err) throw err; + console.log('file overwritten'); +}); + +fs.appendFile('dummy.txt', 'example', 'utf8', (err) => { + if (err) throw err; + console.log('data appended'); +}); + + + + + + + + + + + + + + + + + + + + + + + + + + + +// spacing diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..3d2cfc2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,13 @@ +{ + "name": "async", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=" + } + } +} diff --git a/package.json b/package.json index fc11616..87d281c 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,8 @@ "bugs": { "url": "https://github.com/BrennanFulmer/assignment_async_nodejs/issues" }, - "homepage": "https://github.com/BrennanFulmer/assignment_async_nodejs#readme" + "homepage": "https://github.com/BrennanFulmer/assignment_async_nodejs#readme", + "dependencies": { + "fs": "0.0.1-security" + } } From 393d5bbc13e37bfb32f6273004faf2823851252c Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Thu, 26 Apr 2018 15:10:09 -0400 Subject: [PATCH 09/14] redoing file structure to better organize seperate project parts and prepare for module creation --- event_emitter/event_emitter.js | 3 +++ dummy.txt => file_operations/dummy.txt | 0 file_ops.js => file_operations/file_ops.js | 14 +++++++++++--- lib/emitter.js | 0 lib/fsp.js | 0 warmup.js => warmup/warmup.js | 0 6 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 event_emitter/event_emitter.js rename dummy.txt => file_operations/dummy.txt (100%) rename file_ops.js => file_operations/file_ops.js (63%) create mode 100644 lib/emitter.js create mode 100644 lib/fsp.js rename warmup.js => warmup/warmup.js (100%) diff --git a/event_emitter/event_emitter.js b/event_emitter/event_emitter.js new file mode 100644 index 0000000..e2c77aa --- /dev/null +++ b/event_emitter/event_emitter.js @@ -0,0 +1,3 @@ + +var Emitter = require('.../lib/emitter.js'); +var emitter = new Emitter(); diff --git a/dummy.txt b/file_operations/dummy.txt similarity index 100% rename from dummy.txt rename to file_operations/dummy.txt diff --git a/file_ops.js b/file_operations/file_ops.js similarity index 63% rename from file_ops.js rename to file_operations/file_ops.js index ce548b1..849edee 100644 --- a/file_ops.js +++ b/file_operations/file_ops.js @@ -5,7 +5,7 @@ const fs = require('fs'); -fs.readFile('dummy.txt', 'utf8', (err, data) => { +/* fs.readFile('dummy.txt', 'utf8', (err, data) => { if (err) throw err; console.log('I read "' + data + '"'); }); @@ -18,8 +18,16 @@ fs.writeFile('dummy.txt', 'test', 'utf8', (err) => { fs.appendFile('dummy.txt', 'example', 'utf8', (err) => { if (err) throw err; console.log('data appended'); -}); - +}); */ + +/* fsp.readFile('dummy.txt') + .then(function(data) { + // Outputs the file data + console.log(data); + }) + .catch(function(err) { + throw new Error(err); + }); */ diff --git a/lib/emitter.js b/lib/emitter.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/fsp.js b/lib/fsp.js new file mode 100644 index 0000000..e69de29 diff --git a/warmup.js b/warmup/warmup.js similarity index 100% rename from warmup.js rename to warmup/warmup.js From 1e4cd38dcb2278c590efaabc86b1ea084474ae73 Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Thu, 26 Apr 2018 16:02:19 -0400 Subject: [PATCH 10/14] finished readfile method --- file_operations/dummy.txt | 2 +- file_operations/file_ops.js | 71 +++++++++++++------------------------ lib/fsp.js | 40 +++++++++++++++++++++ 3 files changed, 66 insertions(+), 47 deletions(-) diff --git a/file_operations/dummy.txt b/file_operations/dummy.txt index 7ab9e75..bcc0ceb 100644 --- a/file_operations/dummy.txt +++ b/file_operations/dummy.txt @@ -1 +1 @@ -testexample \ No newline at end of file +for all your file operation testing needs diff --git a/file_operations/file_ops.js b/file_operations/file_ops.js index 849edee..2392aad 100644 --- a/file_operations/file_ops.js +++ b/file_operations/file_ops.js @@ -1,57 +1,36 @@ /* - cd Documents/Viking/Node/async + debugger; */ -const fs = require('fs'); +var fsp = require('../lib/fsp'); -/* fs.readFile('dummy.txt', 'utf8', (err, data) => { - if (err) throw err; - console.log('I read "' + data + '"'); -}); - -fs.writeFile('dummy.txt', 'test', 'utf8', (err) => { - if (err) throw err; - console.log('file overwritten'); -}); - -fs.appendFile('dummy.txt', 'example', 'utf8', (err) => { - if (err) throw err; - console.log('data appended'); -}); */ +fsp.readFile("dummy.txt").then(function(data) { + console.log(data); + }).catch(function(err) { + throw new Error(err); + }); -/* fsp.readFile('dummy.txt') - .then(function(data) { +/* +fsp + .writeFile("dummy.txt", "Hello!") + .then(function(res) { // Outputs the file data - console.log(data); + // after writing + console.log(res); }) .catch(function(err) { throw new Error(err); - }); */ - - - - - - - - - - - - + }); - - - - - - - - - - - - - -// spacing +fsp + .appendFile("dummy.txt", "Hello again!") + .then(function(res) { + // Outputs the file data + // after appending + console.log(res); + }) + .catch(function(err) { + throw new Error(err); + }); +*/ diff --git a/lib/fsp.js b/lib/fsp.js index e69de29..86c605d 100644 --- a/lib/fsp.js +++ b/lib/fsp.js @@ -0,0 +1,40 @@ + +/* + cd Documents/Viking/Node/async +*/ + +const fs = require('fs'); + +var fsp = { + readFile: function(path) { + var rf = new Promise((resolve, reject) => { + fs.readFile(path, 'utf8', (err, data) => { + err ? reject(err) : resolve(data); + }); + }); + return rf; + } +}; + +/* +fs.readFile('dummy.txt', 'utf8', (err, data) => { + if (err) throw new Error(err); + console.log('I read "' + data + '"'); +}); + +fs.writeFile('dummy.txt', 'test', 'utf8', (err) => { + if (err) throw new Error(err); + console.log('file overwritten'); +}); + +fs.appendFile('dummy.txt', 'example', 'utf8', (err) => { + if (err) throw new Error(err); + console.log('data appended'); +}); +*/ + +module.exports = fsp; + + + +// spacing From 6cf690275b22001eb53a73798aa6453f08aab284 Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Thu, 26 Apr 2018 16:37:10 -0400 Subject: [PATCH 11/14] finished creating fsp module --- event_emitter/event_emitter.js | 2 +- file_operations/dummy.txt | 1 - file_operations/file_ops.js | 36 ------------------------ file_ops/dummy.txt | 1 + file_ops/file_ops.js | 29 ++++++++++++++++++++ index.js | 13 +++++++++ lib/emitter.js | 4 +++ lib/fsp.js | 47 ++++++++++++++------------------ warmup/{warmup.js => warmups.js} | 11 ++++---- 9 files changed, 73 insertions(+), 71 deletions(-) delete mode 100644 file_operations/dummy.txt delete mode 100644 file_operations/file_ops.js create mode 100644 file_ops/dummy.txt create mode 100644 file_ops/file_ops.js create mode 100644 index.js rename warmup/{warmup.js => warmups.js} (90%) diff --git a/event_emitter/event_emitter.js b/event_emitter/event_emitter.js index e2c77aa..a3ecb85 100644 --- a/event_emitter/event_emitter.js +++ b/event_emitter/event_emitter.js @@ -1,3 +1,3 @@ -var Emitter = require('.../lib/emitter.js'); +var Emitter = require(`../lib/emitter.js`); var emitter = new Emitter(); diff --git a/file_operations/dummy.txt b/file_operations/dummy.txt deleted file mode 100644 index bcc0ceb..0000000 --- a/file_operations/dummy.txt +++ /dev/null @@ -1 +0,0 @@ -for all your file operation testing needs diff --git a/file_operations/file_ops.js b/file_operations/file_ops.js deleted file mode 100644 index 2392aad..0000000 --- a/file_operations/file_ops.js +++ /dev/null @@ -1,36 +0,0 @@ - -/* - debugger; -*/ - -var fsp = require('../lib/fsp'); - -fsp.readFile("dummy.txt").then(function(data) { - console.log(data); - }).catch(function(err) { - throw new Error(err); - }); - -/* -fsp - .writeFile("dummy.txt", "Hello!") - .then(function(res) { - // Outputs the file data - // after writing - console.log(res); - }) - .catch(function(err) { - throw new Error(err); - }); - -fsp - .appendFile("dummy.txt", "Hello again!") - .then(function(res) { - // Outputs the file data - // after appending - console.log(res); - }) - .catch(function(err) { - throw new Error(err); - }); -*/ diff --git a/file_ops/dummy.txt b/file_ops/dummy.txt new file mode 100644 index 0000000..b861aad --- /dev/null +++ b/file_ops/dummy.txt @@ -0,0 +1 @@ +Hello!Hello again! \ No newline at end of file diff --git a/file_ops/file_ops.js b/file_ops/file_ops.js new file mode 100644 index 0000000..89c392a --- /dev/null +++ b/file_ops/file_ops.js @@ -0,0 +1,29 @@ + +var fsp = require(`../lib/fsp`); + +fsp + .readFile(`dummy.txt`) + .then(function(data) { + console.log(data); + }) + .catch(function(err) { + console.error(err); + }); + +fsp + .writeFile(`dummy.txt`, `Hello!`) + .then(function(res) { + console.log(res); + }) + .catch(function(err) { + console.error(err); + }); + +fsp + .appendFile(`dummy.txt`, `Hello again!`) + .then(function(res) { + console.log(res); + }) + .catch(function(err) { + console.error(err); + }); diff --git a/index.js b/index.js new file mode 100644 index 0000000..16c5a9e --- /dev/null +++ b/index.js @@ -0,0 +1,13 @@ + +console.log(` +This repository contains three parts, they are: + + 1. warmup + + 2. file_ops + + 3. event_emitter + +as you've likely guessed to check them out run the .js file in each +directory with node +`); diff --git a/lib/emitter.js b/lib/emitter.js index e69de29..b1925d2 100644 --- a/lib/emitter.js +++ b/lib/emitter.js @@ -0,0 +1,4 @@ + +/* + cd Documents/Viking/Node/async +*/ diff --git a/lib/fsp.js b/lib/fsp.js index 86c605d..b9ba86f 100644 --- a/lib/fsp.js +++ b/lib/fsp.js @@ -1,40 +1,33 @@ -/* - cd Documents/Viking/Node/async -*/ - -const fs = require('fs'); +const fs = require(`fs`); var fsp = { readFile: function(path) { var rf = new Promise((resolve, reject) => { - fs.readFile(path, 'utf8', (err, data) => { + fs.readFile(path, `utf8`, (err, data) => { err ? reject(err) : resolve(data); }); }); return rf; - } -}; - -/* -fs.readFile('dummy.txt', 'utf8', (err, data) => { - if (err) throw new Error(err); - console.log('I read "' + data + '"'); -}); + }, -fs.writeFile('dummy.txt', 'test', 'utf8', (err) => { - if (err) throw new Error(err); - console.log('file overwritten'); -}); + writeFile: function(path, text) { + var wf = new Promise((resolve, reject) => { + fs.writeFile(path, text, `utf8`, (err, res) => { + err ? reject(err) : resolve(text); + }); + }); + return wf; + }, -fs.appendFile('dummy.txt', 'example', 'utf8', (err) => { - if (err) throw new Error(err); - console.log('data appended'); -}); -*/ + appendFile: function(path, text) { + var af = new Promise((resolve, reject) => { + fs.appendFile(path, text, `utf8`, (err, res) => { + err ? reject(err) : resolve(text); + }); + }); + return af; + } +}; module.exports = fsp; - - - -// spacing diff --git a/warmup/warmup.js b/warmup/warmups.js similarity index 90% rename from warmup/warmup.js rename to warmup/warmups.js index 5d9fe08..c81c826 100644 --- a/warmup/warmup.js +++ b/warmup/warmups.js @@ -1,7 +1,7 @@ // create a promise that resolves "Hello Promise!" after one second using .then var greet = new Promise(function(resolve, reject) { - resolve("Hello Promise!"); + resolve(`Hello Promise!`); }); greet.then(function(greeting) { @@ -20,8 +20,7 @@ function delay(milliseconds) { console.log(milliseconds); resolve(milliseconds); } else { - console.log("Done!"); - // throw new Error("Done!"); + console.log(`Done!`); } }, milliseconds); }); @@ -52,7 +51,7 @@ var integers = [1, 2, 3, 4, 5, 6, 7, 8, 9]; function squared(number) { return new Promise((resolve, reject) => { if (isNaN(number)) { - reject("Argument wasn't a number"); + reject(`Argument wasn't a number`); } else { resolve(number * number); } @@ -68,9 +67,9 @@ vice versa */ function doBadThing(forRealz) { var baddest = new Promise((resolve, reject) => { if (forRealz == false) { - resolve("Yay!"); + resolve(`Yay!`); } else if (forRealz == true) { - reject("Only false will resolve"); + reject(`Only false will resolve`); } }); baddest.then( From 0f4c8d4ce52c87d4383e28505e64943c09656664 Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Fri, 27 Apr 2018 03:10:59 -0400 Subject: [PATCH 12/14] custom event emitter working --- event_emitter/event_emitter.js | 54 ++++++++++++++++++++++++++++++++++ lib/emitter.js | 51 ++++++++++++++++++++++++++++++++ package-lock.json | 5 ++++ package.json | 1 + 4 files changed, 111 insertions(+) diff --git a/event_emitter/event_emitter.js b/event_emitter/event_emitter.js index a3ecb85..5799009 100644 --- a/event_emitter/event_emitter.js +++ b/event_emitter/event_emitter.js @@ -1,3 +1,57 @@ var Emitter = require(`../lib/emitter.js`); +// var Emitter = require('events'); var emitter = new Emitter(); + +function alpha() { + console.log(`alpha`); +} + +function bravo() { + console.log(`bravo`); +} + +function charlie() { + console.log(`charlie`); +} + +emitter.on(`event`, alpha); + +emitter.on(`event_2`, alpha).on('event', bravo).on(`event`, charlie); + +emitter.getter(); + +emitter.emit(`event`); + +emitter.emit(`event_2`); + +emitter.removeListener(`event`, alpha); + +emitter.getter(); + +emitter.removeAllListeners(`event_2`); + +emitter.getter(); + +emitter.emit(`event`); + +emitter.emit(`event_2`); +/**/ + + + +/* +var fs = require('fs'); +var text = fs.createReadStream('../README.md'); + +text.on('open', (value) => { + console.log(` + opened with value ${value}`); +}); + +process.on('exit', (code) => { + console.log(` + About to exit with code: ${code} + `); +}); +*/ diff --git a/lib/emitter.js b/lib/emitter.js index b1925d2..e64caaa 100644 --- a/lib/emitter.js +++ b/lib/emitter.js @@ -2,3 +2,54 @@ /* cd Documents/Viking/Node/async */ + +var emitter = function() { + var events = {}; + + this.getter = () => { + console.log(events); + } + + this.on = function(eventName, listener) { + if (events[eventName] == undefined) { + events[eventName] = [listener]; + } else { + events[eventName].push(listener); + } + return this; + } + + this.emit = function(eventName, ...rest) { + if (events[eventName] == undefined) { + return false; + } else if (rest.length == 0) { + for (var listeners in events[eventName]) { + events[eventName][listeners](); + } + return true; + } else { + for (var listeners in events[eventName]) { + events[eventName][listeners](rest); + } + return true; + } + } + + this.removeListener = function(eventName, listener) { + if (events[eventName] != undefined) { + var index = events[eventName].indexOf(listener); + if (index != -1) { + events[eventName].splice(index, 1); + } + } + return this; + } + + this.removeAllListeners = function(eventName) { + events[eventName] = undefined; + return this; + } + +} + +module.exports = emitter; diff --git a/package-lock.json b/package-lock.json index 3d2cfc2..5525e54 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,6 +4,11 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "events": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-2.0.0.tgz", + "integrity": "sha512-r/M5YkNg9zwI8QbSf7tsDWWJvO3PGwZXyG7GpFAxtMASnHL2eblFd7iHiGPtyGKKFPZ59S63NeX10Ws6WqGDcg==" + }, "fs": { "version": "0.0.1-security", "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", diff --git a/package.json b/package.json index 87d281c..08d8de4 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ }, "homepage": "https://github.com/BrennanFulmer/assignment_async_nodejs#readme", "dependencies": { + "events": "^2.0.0", "fs": "0.0.1-security" } } From 46e73d69a6a498d83e57599b3365965e3bf13e5c Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Fri, 27 Apr 2018 03:27:13 -0400 Subject: [PATCH 13/14] minor finishing touches --- event_emitter/emitter_tester.js | 35 +++++++++++++++ event_emitter/event_emitter.js | 57 ------------------------- file_ops/{file_ops.js => fsp_tester.js} | 2 +- lib/emitter.js => modules/my_emitter.js | 19 +++------ lib/fsp.js => modules/promise_fs.js | 0 5 files changed, 41 insertions(+), 72 deletions(-) create mode 100644 event_emitter/emitter_tester.js delete mode 100644 event_emitter/event_emitter.js rename file_ops/{file_ops.js => fsp_tester.js} (90%) rename lib/emitter.js => modules/my_emitter.js (90%) rename lib/fsp.js => modules/promise_fs.js (100%) diff --git a/event_emitter/emitter_tester.js b/event_emitter/emitter_tester.js new file mode 100644 index 0000000..f9cbaef --- /dev/null +++ b/event_emitter/emitter_tester.js @@ -0,0 +1,35 @@ + +var Emitter = require(`../modules/my_emitter.js`); +// var Emitter = require('events'); +var emitter = new Emitter(); + +function alpha() { + console.log(`alpha`); +} + +function bravo() { + console.log(`bravo`); +} + +function charlie() { + console.log(`charlie`); +} + +emitter.on(`event`, alpha); + +emitter + .on(`event_2`, alpha) + .on("event", bravo) + .on(`event`, charlie); + +emitter.emit(`event`); + +emitter.emit(`event_2`); + +emitter.removeListener(`event`, alpha); + +emitter.removeAllListeners(`event_2`); + +emitter.emit(`event`); + +emitter.emit(`event_2`); diff --git a/event_emitter/event_emitter.js b/event_emitter/event_emitter.js deleted file mode 100644 index 5799009..0000000 --- a/event_emitter/event_emitter.js +++ /dev/null @@ -1,57 +0,0 @@ - -var Emitter = require(`../lib/emitter.js`); -// var Emitter = require('events'); -var emitter = new Emitter(); - -function alpha() { - console.log(`alpha`); -} - -function bravo() { - console.log(`bravo`); -} - -function charlie() { - console.log(`charlie`); -} - -emitter.on(`event`, alpha); - -emitter.on(`event_2`, alpha).on('event', bravo).on(`event`, charlie); - -emitter.getter(); - -emitter.emit(`event`); - -emitter.emit(`event_2`); - -emitter.removeListener(`event`, alpha); - -emitter.getter(); - -emitter.removeAllListeners(`event_2`); - -emitter.getter(); - -emitter.emit(`event`); - -emitter.emit(`event_2`); -/**/ - - - -/* -var fs = require('fs'); -var text = fs.createReadStream('../README.md'); - -text.on('open', (value) => { - console.log(` - opened with value ${value}`); -}); - -process.on('exit', (code) => { - console.log(` - About to exit with code: ${code} - `); -}); -*/ diff --git a/file_ops/file_ops.js b/file_ops/fsp_tester.js similarity index 90% rename from file_ops/file_ops.js rename to file_ops/fsp_tester.js index 89c392a..d0d1de7 100644 --- a/file_ops/file_ops.js +++ b/file_ops/fsp_tester.js @@ -1,5 +1,5 @@ -var fsp = require(`../lib/fsp`); +var fsp = require(`../modules/promise_fs`); fsp .readFile(`dummy.txt`) diff --git a/lib/emitter.js b/modules/my_emitter.js similarity index 90% rename from lib/emitter.js rename to modules/my_emitter.js index e64caaa..cf3c9df 100644 --- a/lib/emitter.js +++ b/modules/my_emitter.js @@ -1,15 +1,7 @@ -/* - cd Documents/Viking/Node/async -*/ - var emitter = function() { var events = {}; - this.getter = () => { - console.log(events); - } - this.on = function(eventName, listener) { if (events[eventName] == undefined) { events[eventName] = [listener]; @@ -17,7 +9,7 @@ var emitter = function() { events[eventName].push(listener); } return this; - } + }; this.emit = function(eventName, ...rest) { if (events[eventName] == undefined) { @@ -33,7 +25,7 @@ var emitter = function() { } return true; } - } + }; this.removeListener = function(eventName, listener) { if (events[eventName] != undefined) { @@ -43,13 +35,12 @@ var emitter = function() { } } return this; - } + }; this.removeAllListeners = function(eventName) { events[eventName] = undefined; return this; - } - -} + }; +}; module.exports = emitter; diff --git a/lib/fsp.js b/modules/promise_fs.js similarity index 100% rename from lib/fsp.js rename to modules/promise_fs.js From e3ff063b44015815132cc0e1df5863f4c81f491c Mon Sep 17 00:00:00 2001 From: Brennan_Fulmer <31666354+BrennanFulmer@users.noreply.github.com> Date: Fri, 27 Apr 2018 03:59:05 -0400 Subject: [PATCH 14/14] made some tweaks based on solution repo --- README.md | 2 +- .../{emitter_tester.js => test_emitter.js} | 4 --- warmup/warmups.js | 27 +++++++++++-------- 3 files changed, 17 insertions(+), 16 deletions(-) rename event_emitter/{emitter_tester.js => test_emitter.js} (99%) diff --git a/README.md b/README.md index 107f59e..e9fb47d 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,4 @@ by Brennan Fulmer -Just some asynchronous Node.js practice exercises +Just some Node.js practice diff --git a/event_emitter/emitter_tester.js b/event_emitter/test_emitter.js similarity index 99% rename from event_emitter/emitter_tester.js rename to event_emitter/test_emitter.js index f9cbaef..56b1e63 100644 --- a/event_emitter/emitter_tester.js +++ b/event_emitter/test_emitter.js @@ -16,20 +16,16 @@ function charlie() { } emitter.on(`event`, alpha); - emitter .on(`event_2`, alpha) .on("event", bravo) .on(`event`, charlie); emitter.emit(`event`); - emitter.emit(`event_2`); emitter.removeListener(`event`, alpha); - emitter.removeAllListeners(`event_2`); emitter.emit(`event`); - emitter.emit(`event_2`); diff --git a/warmup/warmups.js b/warmup/warmups.js index c81c826..51a6edc 100644 --- a/warmup/warmups.js +++ b/warmup/warmups.js @@ -1,13 +1,13 @@ // create a promise that resolves "Hello Promise!" after one second using .then var greet = new Promise(function(resolve, reject) { - resolve(`Hello Promise!`); + setTimeout(() => { + resolve(`Hello Promise!`); + }, 1000); }); greet.then(function(greeting) { - setTimeout(() => { - console.log(greeting); - }, 1000); + console.log(greeting); }); /* Create a delay(milliseconds) function that should return a promise that @@ -26,8 +26,8 @@ function delay(milliseconds) { }); } -function countDown(ms) { - return delay(ms - 100); +function countDown(time) { + return delay(time - 100); } delay(1000) @@ -58,9 +58,14 @@ function squared(number) { }); } -Promise.all(integers.map(squared)).then(results => { - console.log(results); -}); +Promise.all(integers.map(squared)).then( + results => { + console.log(results); + }, + error => { + console.log(error); + } +); /* basically play with the differences between then with and without catch and vice versa */ @@ -73,10 +78,10 @@ function doBadThing(forRealz) { } }); baddest.then( - (response) => { + response => { console.log(response); }, - (broke) => { + broke => { console.log(broke); } );