Skip to content

Instantly share code, notes, and snippets.

@MadaraUchiha
Last active June 19, 2018 13:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MadaraUchiha/23c25b9b93fa9a875f343a01b632cfa1 to your computer and use it in GitHub Desktop.
Save MadaraUchiha/23c25b9b93fa9a875f343a01b632cfa1 to your computer and use it in GitHub Desktop.
class Producer {
start(consumer) {
consumer.start(this);
this.counter = 0;
this.handler = setInterval(() => consumer.data(this.counter++), 1000);
}
stop() {
clearInterval(this.handler);
}
}
class Consumer {
start(producer) {
setTimeout(() => producer.stop(), 3500);
}
data(payload) {
console.log(payload);
}
}
const p = new Producer();
const c = new Consumer();
p.start(c);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment