Если у меня есть следующий код:
const subject = new BehaviorSubject<[]>([]);
const observable = subject.asObservable();
subject.next([{color: 'blue'}])
observable.pipe(first()).subscribe(v => console.log(v))
Согласно документации:
Если вызывается без аргументов, сначала выдается первое значение источника Наблюдаемый, затем завершающий ....
Означает ли это, что наблюдаемый источник (в данном случае BehaviorSubject) завершается, и вы больше не можете его использовать? Так как вы больше не можете вызывать .next([...])
на нем.
Я пытаюсь понять, как можно завершить наблюдаемое, если на нем нет .complete()
метода?
Я былпытаясь взглянуть на исходный код first()
, который под прикрытием использует take()
, а в свою очередь take()
использует lift()
, поэтому мне было любопытно, как-то первый оператор возвращает копию исходного наблюдаемого (субъекта) и завершаетчто.