β€4π€2
CHALLENGE
class EventEmitter {
#listeners = new Map();
on(event, listener) {
if (!this.#listeners.has(event)) {
this.#listeners.set(event, []);
}
this.#listeners.get(event).push(listener);
return this;
}
emit(event, ...args) {
const handlers = this.#listeners.get(event) ?? [];
handlers.forEach(fn => fn(...args));
return this;
}
}
const emitter = new EventEmitter();
const log = [];
emitter
.on("data", val => log.push(`A:${val}`))
.on("data", val => log.push(`B:${val * 2}`))
.on("end", () => log.push("done"));
emitter.emit("data", 5).emit("data", 3).emit("end");
console.log(log.join(","));
What is the output?
Anonymous Quiz
33%
A:5,B:10,A:3,B:6,done
40%
A:5,A:3,B:6,B:10,done
23%
A:5,B:10,done,A:3,B:6
4%
A:5,B:25,A:3,B:9,done
β€2
npm is the only major package manager that runs dependency install scripts (e.g. postinstall) by default, and theyβve become too much of a security weakness, says Jamie, who works for GitHub (maintainers of npm). This RFC features further discussion of the idea and the tradeoffs involved.
Jamie Magee
Please open Telegram to view this post
VIEW IN TELEGRAM
β€2