【发布时间】:2019-10-30 04:26:52
【问题描述】:
如果我有以下代码:
const subject = new BehaviorSubject<[]>([]);
const observable = subject.asObservable();
subject.next([{color: 'blue'}])
observable.pipe(first()).subscribe(v => console.log(v))
根据文档:
如果不带参数调用,首先发出源 Observable 的第一个值,然后完成....
这是否意味着源 observable(在本例中为 BehaviorSubject)完成并且您不能再使用它?因为你不能再打电话给.next([...])。
我试图了解如果 observable 上没有 .complete() 方法,它如何完成?
我试图查看first() 的源代码,它在幕后使用take(),而take() 使用lift(),所以我很好奇第一个操作员是否以某种方式返回了源 observable 的副本(主题)并完成。
【问题讨论】:
标签: rxjs