从服务器接收Observable后返回BehaviorSubject

时间:2018-04-29 11:28:41

标签: angular typescript angular2-observables behaviorsubject

search

我有Observable函数进行http调用并返回search。我在另一个应该返回BehaviorSubject的函数中调用此return this.watchlist$;。如您所见,最后一行search不等待BehaviorSubject函数,它只返回watchlist$,然后我只更新watchlist$。 我想要做的是删除最后一行,并仅在收到search函数的结果时返回 getWatchlist(query: string): BehaviorSubject<IWatchlist> { return this.search(query) .subscribe((searchResults: Observable<ISearchResults>) => { const watchlist = formatSearchResults(searchResults); this.watchlist$.next(watchlist); return this.watchlist$; }); } 。 我试着这样做:

Type Observable<BehaviorSubject<IWatchlist>>

但是我遇到了一个错误:{{1}}无法分配给`,所以我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

this.search(query).subscribe(...)方法返回一个Subscription,同时必须返回一个BehaviorSubject。您不应该从订阅事件中返回任何内容。你必须实例化一个新的BehaviorSubject并从getWatchlist()方法返回它,在subscribe事件中你应该通过next()方法设置BehaviorSubject。