33 lines
970 B
JavaScript
33 lines
970 B
JavaScript
// Licensed to the .NET Foundation under one or more agreements.
|
|
// The .NET Foundation licenses this file to you under the MIT license.
|
|
import { SubjectSubscription } from "./Utils";
|
|
/** Stream implementation to stream items to the server. */
|
|
export class Subject {
|
|
constructor() {
|
|
this.observers = [];
|
|
}
|
|
next(item) {
|
|
for (const observer of this.observers) {
|
|
observer.next(item);
|
|
}
|
|
}
|
|
error(err) {
|
|
for (const observer of this.observers) {
|
|
if (observer.error) {
|
|
observer.error(err);
|
|
}
|
|
}
|
|
}
|
|
complete() {
|
|
for (const observer of this.observers) {
|
|
if (observer.complete) {
|
|
observer.complete();
|
|
}
|
|
}
|
|
}
|
|
subscribe(observer) {
|
|
this.observers.push(observer);
|
|
return new SubjectSubscription(this, observer);
|
|
}
|
|
}
|
|
//# sourceMappingURL=Subject.js.map
|