У меня есть родительский наблюдатель, который после того, как он имеет подписчика, выполнит поиск и испустит одно значение, а затем выполнит его.
Я хотел бы преобразовать это в наблюдаемый (или объект поведения или что-то другое), который делает следующее: после того, как он имеет хотя бы одного абонента, он получает результат от наблюдаемого родителя (один раз). Затем он выдает это значение всем своим подписчикам, а также передает это единственное значение всем будущим подписчикам, когда они подписываются. Он должен продолжать это поведение, даже если его количество подписчиков падает до нуля.
Кажется, это должно быть легко. Вот что не получилось:
theValue$: Observable<boolean> = parent$
.take(1)
.share()
Другие вещи, которые не работали: publishReplay()
, publish()
. Что-то, что сработало лучше:
theValue$ = new BehaviorSubject<boolean>(false);
parent$
.take(1)
.subscribe( value => theValue$.next(value));
Существует проблема с этим подходом, хотя: parent$
подписан до того, как theValue$
получит своего первого абонента.
Есть ли лучший способ справиться с этим?