0
我必須在這裏的東西超級明顯...角2個RXJS觀察到
public suggestedData$: Observable<string[]>;
public suggestionStream = new Subject<string>();
nextSuggestion(){
this.suggestionStream.next(this.query);
}
this.suggestionStream
.map(query => {
return this._someService.getSomeThings(query);
});
this.suggestionData$ = this.suggestionStream.subscribe();
然後在模板我想使用可觀察到的是這樣的:
<ul>
<li *ngFor="let suggestion of suggestionData$ | async">{{suggestion.something}}</li>
</ul>
的Visual Studio說:Type 'Subscription' is not assignable to type 'Observable<string[]>'.
爲this.suggestionData$ = this.sug...
任何想法?
編輯:
this.suggestionStream
.map(query => {
console.log(query);
return this._someService.getSomeThings(query);
})
.subscribe(res => {
console.log('res', res);
});
打印控制檯:
res Observable {_isScalar: false, source: Observable, operator: MapOperator}
_someService看起來是這樣的:
getSomeThings(query: string){
let params = new URLSearchParams();
params.set('query', query);
return this.http.get('https://api.../suggest', {search: params})
.map(res => res.json() || []);
}
那是我的想法...我在Visual Studio中遇到這個錯誤: 'Type'Observable>'不可分配給類型'Observable '。 類型'Observable '不可分配爲鍵入'string []'。 類型'Observable '中缺少屬性「長度」。「在控制檯中沒有錯誤,它似乎不起作用。 –
nick
嘗試flatMap運算符而不是map。我也認爲建議的數據應該是可觀察的 –
theFreedomBanana