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}}无法分配给`,所以我该如何解决这个问题呢?
答案 0 :(得分:0)
this.search(query).subscribe(...)方法返回一个Subscription,同时必须返回一个BehaviorSubject。您不应该从订阅事件中返回任何内容。你必须实例化一个新的BehaviorSubject并从getWatchlist()方法返回它,在subscribe事件中你应该通过next()方法设置BehaviorSubject。