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>
비주얼 스튜디오 말하는 : this.suggestionData$ = this.sug...
에 대한 Type 'Subscription' is not assignable to type 'Observable<string[]>'.
어떤 아이디어?
편집 : 콘솔에서
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에서이 오류가 발생했습니다. '유형'Observable> '을'Observable '유형에 할당 할 수 없습니다. 'Observable '유형을 'string []'유형에 지정할 수 없습니다. 'Observable '유형에 'length'속성이 없습니다. 콘솔에 오류가 없으므로 작동하지 않는 것 같습니다. –
nick
map 대신 flatMap 연산자를 사용하십시오. 나는 또한 suggestData Observable이어야한다고 생각한다 –
theFreedomBanana