fanout.js 444 B

1234567891011121314151617
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.FanOut = void 0;
  4. class FanOut {
  5. constructor() {
  6. this.listeners = new Set();
  7. }
  8. emit(data) {
  9. this.listeners.forEach((listener) => listener(data));
  10. }
  11. listen(listener) {
  12. const listeners = this.listeners;
  13. listeners.add(listener);
  14. return () => listeners.delete(listener);
  15. }
  16. }
  17. exports.FanOut = FanOut;