【发布时间】:2018-06-14 15:34:52
【问题描述】:
每当我们想将一些值注入可观察的流中时,我们经常使用这样的模式:
private readonly loadTriggerSubject = new Subject<any>();
private readonly loadTrigger$ = this.loadTriggerSubject.pipe(
// operators
);
onScroll() {
this.loadTriggerSubject.next();
}
那么在同一个组件中我们可以使用$loadTrigger$的输出流,例如:
private readonly load$ = combineLatest(
this.limit$,
this.loadTrigger$,
(limit, trigger) => ({ limit, trigger }),
).pipe(
// operators
);
onScroll()基本上是触发了整个机器,但感觉样板太多了。有没有办法明确地将 observable 与其主题分开以简化上面的代码,但在onScroll() 被触发时仍然有loadTrigger$ observable 发射??
【问题讨论】:
-
你在哪里将 Observable 与 Subject 分开? Subject 实现了 Observable 和 Observer。 Subject 的重点是你可以调用 next 并订阅同一个对象。
-
(scroll)="loadTriggerSubject.next($event)",直接放到模板里
标签: angular rxjs observable