【发布时间】:2018-04-29 11:28:41
【问题描述】:
getWatchlist(query: string): BehaviorSubject<IWatchlist> {
this.search(query)
.subscribe((searchResults: Observable<ISearchResults>) => {
const watchlist = formatSearchResults(searchResults);
this.watchlist$.next(watchlist);
});
return this.watchlist$;
}
我有search 函数,它进行http 调用并返回Observable。我在另一个应该返回BehaviorSubject 的函数中调用了这个search。如您所见,最后一行return this.watchlist$; 不等待search 函数,它只返回BehaviorSubject,然后我只更新watchlist$。
我要做的是删除最后一行并仅在收到search 函数的结果时返回watchlist$。
我试着做:
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>> 不能分配给类型 ` 那么我该如何解决这个问题?
【问题讨论】:
-
这只是好奇,我想解释一下,因为你想返回一个 BehaivorSubject。返回一个简单的 Observable 不是更好吗?
标签: angular typescript angular2-observables behaviorsubject