RXJS Observable - 如何从 Observable 的构造函数外部调用 next

标签 rxjs observable subject-observer

我正在构建一个公开 Observable 的服务。在此服务中,我收到外部函数调用,这些函数调用应触发对 Observable 的下一次调用,以便各种消费者获得订阅事件。在 Observer 构造函数期间,我可以调用 next,一切正常,但我如何在构造函数外部访问它,以便外部触发器可以触发 next 调用?

private myObservable$: Observable<any>;

在服务初始化期间我做

this.myObservable$ = new Observable(observer => {
    observer.next("initial message");
}

然后在同一服务的其他方法中,我希望能够执行类似的操作

this.myObservable$.observer.next("next message");

以上显然行不通,但我怎样才能实现这个目标呢?

我假设我遗漏了一些基本的东西,因为必须有一种方法可以在 Observable 的初始构造函数之外发出更多消息

最佳答案

你应该创建一个 Subject为此

this.myObservable$ = new Subject();

然后你可以随时调用:

this.myObservable$.next(...);

或者使用订阅:

this.myObservable$.subscribe(...)

关于RXJS Observable - 如何从 Observable 的构造函数外部调用 next,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41859189/

相关文章:

Angular RxJS - 取消订阅 mergeMap?

javascript - RXJS 立即发出并重试

templates - Dart polymer 模板中的树结合

scala - 使用 Monix Observable 处理错误的更好方法

javascript - 以 Angular 每 x 秒一次的 http 请求

firebase - 如何使用 rxfire 和 rxjs(或查询)加入两个 Firestore 查询

Angular 6 - 行为主题 : get data to stay after refresh

angular - 在 Angular 服务中使用变量和使用主题来创建可在整个应用程序中使用的全局变量之间的区别?

javascript - React,带有 typescript 的观察者无状态组件

angular - Subject 和 Observable,如何删除 item,filter() list 和 next()