【发布时间】:2020-09-28 13:29:42
【问题描述】:
考虑以下代码 (on Stackblitz):
const subject$ = new BehaviorSubject<number>(0);
const second$ = of<number>(3, 4, 5)
.pipe(delay(100));
subject$.subscribe(console.log);
subject$.next(1);
subject$.next(2);
const subscription$ = second$.subscribe(subject$);
setTimeout(() => subscription$.unsubscribe(), 200);
setTimeout(() => subject$.next(6), 300);
我想要一个 Subject,它“手动”(使用 next)接收数据,然后只要它存在,就订阅另一个 observable,然后可以正常使用。
上面的代码放出来
0
1
2
3
4
5
6 丢失了,显然是因为它是在同时订阅的 observable 完成后设置的。如果我不取消订阅第二个 observable,也会发生同样的情况。
订阅的 Observable 结束后,Subject 怎么可能不结束?
【问题讨论】:
-
你到底想达到什么目的?
标签: typescript rxjs