@xylabs/threads
Version:
Web workers & worker threads as simple as a function call
35 lines (34 loc) • 1.04 kB
JavaScript
// src/observable.ts
import { Observable } from "observable-fns";
import { Observable as Observable2 } from "observable-fns";
var $observers = /* @__PURE__ */ Symbol("observers");
var Subject = class extends Observable {
[$observers];
constructor() {
super((observer) => {
this[$observers] = [...this[$observers] ?? [], observer];
const unsubscribe = () => {
this[$observers] = this[$observers].filter((someObserver) => someObserver !== observer);
};
return unsubscribe;
});
this[$observers] = [];
}
/** Signal completion to all subscribers. */
complete() {
for (const observer of this[$observers]) observer.complete();
}
/** Signal an error to all subscribers. */
error(error) {
for (const observer of this[$observers]) observer.error(error);
}
/** Emit a new value to all subscribers. */
next(value) {
for (const observer of this[$observers]) observer.next(value);
}
};
export {
Observable2 as Observable,
Subject
};
//# sourceMappingURL=observable.mjs.map