Skip to content

Emitter is working #60

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions badthing.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
function doBadThing(forRealz){
return new Promise(function(resolve, reject){
if(!forRealz){
resolve("Yay!")
} else {
reject("truthy")
}
})
}

doBadThing(true).then(function(result){
console.log(result)
})

doBadThing(true).then(function(result){
console.log(result)
}).catch(function(err){
console.log(err)
})
24 changes: 24 additions & 0 deletions callingFS.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
var fsp = require('./modules/fsp.js')


fsp.readFile('text.txt', 'utf-8').then(function(data) {
console.log(data);
})
.catch(function(err) {
console.error(err);
});

fsp.writeFile('message.txt', "hello", 'utf-8').then(function(data) {
console.log(data);
})
.catch(function(err) {
console.error(err);
});

fsp.appendFile('text.txt', 'Hello again! I am editing gibberish', 'utf-8')
.then(function(res) {
console.log(res);
})
.catch(function(err) {
console.error(err);
});
10 changes: 10 additions & 0 deletions emitterchild.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
var emitter = require('./modules/emitter.js')
//var Emitter = require('events');

var myEmitter = new emitter.Emitter()
myEmitter.on("write", function(){ console.log("write") })
myEmitter.on("write", function(){ console.log("read") })
myEmitter.on("write", function(){ console.log("hello") })
myEmitter.emit("write")
myEmitter.removeListener("write", function(){ console.log("hello") })
//myEmitter.removeAllListeners("write")
54 changes: 54 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@

let myFunc = function( result ) {
console.log( result );
}
let count = 1000
let prom = new Promise( function( resolve, reject ){
setTimeout(function(){
resolve( "Hello Promise!" )
}, 1000);
});

prom.then(myFunc)

function delay(milliseconds){
return new Promise( function(resolve, reject){
setTimeout(function(){
resolve( milliseconds )
}, 1000);
})
}

function countdown(){
return delay(count).then(function(){
if(count >= 100){
console.log(count)
count -=100
} else{
console.log("Done!")
}

})
}

delay( 1000 )
.then( countdown )
.then( countdown )
.then( countdown )
.then( countdown )
.then( countdown )
.then( countdown )
.then( countdown )
.then( countdown )
.then( countdown )
.then( countdown )
.then( countdown )


/*
(function(){
console.log( "done" );
console.log( "now What" );
})();
*/

1 change: 1 addition & 0 deletions message.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
hello
52 changes: 52 additions & 0 deletions modules/emitter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/*
Attach an event listener with emitter.on(eventType, callback)
Attach subsequent listeners with emitter.on
Emit an event with emitter.emit(eventType)
This should result in all listeners attached to that event being invoked
Remove a listener with emitter.removeListener(eventType, callback)
Remove all listeners on an event with emitter.removeAllListeners(eventType)
*/
let myFuncs = {
Emitter: function(){

this.storage = {},
this.on = function(eventType, callback){

if(!this.storage[eventType]) {this.storage[eventType] = []}
this.storage[eventType].push(callback)
//console.log(this.storage)
return this
},

this.emit = function(eventType){
this.storage[eventType].forEach(function(item){
item()
})
//console.log(this.storage)
return this
},

this.removeListener = function(eventType, callback){
this.storage[eventType].forEach(function(item, index){
if(item === callback){
//this.storage[eventType].splice(index, 1)
}
})
//console.log(this.storage)
return this
},

this.removeAllListeners = function(eventType){
this.storage[eventType].forEach(function(item, index){
this.storage[eventType].splice(0, this.storage[eventType].length - 1)
})
console.log(this.storage)
return this
}
return this
}
}



module.exports = myFuncs
48 changes: 48 additions & 0 deletions modules/fsp.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
var fs = require("fs");

let fsp = {
readFile: function(path, encoding) {
return new Promise(function(resolve, reject){
fs.readFile( path, encoding, function(err, data){
if(err) {throw (err)} else{resolve( data )}
})
})
},
writeFile: function(path, message, encoding) {
return new Promise(function(resolve, reject){
fs.writeFile( path, message, encoding, function(err, data){
if(err) {throw (err)}
resolve(data)
})
})
},
appendFile: function(path, message, encoding) {
return new Promise(function(resolve, reject){
fs.appendFile( path, message, encoding, function(err, data){
if(err) {throw (err)}
resolve(data)
})
})
}
}







/*
let path = "./text.txt";

fs.readFile(path, "utf-8", function(err, data){
console.log(data);
});

let hello = console.log("hello world!");
hello;
let goodbye = 3;

*/

module.exports = fsp
18 changes: 18 additions & 0 deletions numbers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
let numbers = function(number){
return new Promise(function(resolve, reject){
if(typeof number !== "number"){
reject("not a number")
} else {
resolve(number * number)
}
})
}
let numArray = [2,56,67,8,90,88]

let mapped = numArray.map(numbers)

Promise.all(mapped).then(function(results){
console.log(results)
})

numbers(3)
1 change: 1 addition & 0 deletions text.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
hellelkrmvqlrvqekl;rbmvqel;tb mqetbl;mqelt;bHello again! I am editing gibberishHello again! I am editing gibberishHello again! I am editing gibberishHello again! I am editing gibberish
Empty file added untitled
Empty file.