Created
November 1, 2016 10:11
-
-
Save thanhlmm/0ee60f6854cb0344194f5cd48df7108e to your computer and use it in GitHub Desktop.
Hiện thực thử EventEmitter của CuThanh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict" | |
class EventEmitter { | |
constructor() { | |
this.listener = [] | |
} | |
addListener(event, listener) { | |
if (this.listener[event]) { | |
this.listener[event].push(listener) | |
} else { | |
this.listener[event] = Array(listener) | |
} | |
console.log ("Added new listener") | |
console.log (this.listener) | |
return {event: event, index: this.listener[event].indexOf(listener)} | |
} | |
removeListener(listenerInfo) { | |
this.listener[listenerInfo.event].splice(listenerInfo.index, 1) | |
console.log ("Removed a listener") | |
console.log (this.listener) | |
} | |
emit(event, arg) { | |
if (this.listener[event]) { | |
this.listener[event].forEach((x) => x(arg)) | |
} | |
console.log ("Emitted "+event) | |
} | |
} | |
let cuThanh = new EventEmitter | |
let thangA = cuThanh.addListener("GOI500AE", () => { | |
console.log ("A: T đang tiêu chảy, đếu kíu được mày đâu. Gọi thằng B coi") | |
}) | |
let thangB = cuThanh.addListener("GOI500AE", () => { | |
console.log ("B: Mày bảo tụi nó đợi tao 5′, để tao gọi 500 anh em ra cứu bạn gái mày.") | |
}) | |
cuThanh.emit("GOI500AE") | |
cuThanh.removeListener(thangA) | |
cuThanh.emit("GOI500AE") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment