使用RxJs switchMap订阅的Angular typeahead

使用RxJs switchMap订阅的Angular typeahead,angular,rxjs,ng-bootstrap,bootstrap-typeahead,Angular,Rxjs,Ng Bootstrap,Bootstrap Typeahead,使用插件显示颜色。但我需要解决循环引用,就像在我使用的其他地方一样。我无法使用RxJs SwitchMap操作符。还有其他可能的解决方法吗 window.resolveJsonReferencesthis.colorService.searchColorsterm 使用RxJs SwitchMap提前键入 只需通过解析器映射值即可 .mapterm=>this.utilities.resolveJsonReferencesterm 总而言之: 搜索=文本$:可观察=> 正文$ .debounce

使用插件显示颜色。但我需要解决循环引用,就像在我使用的其他地方一样。我无法使用RxJs SwitchMap操作符。还有其他可能的解决方法吗

window.resolveJsonReferencesthis.colorService.searchColorsterm

使用RxJs SwitchMap提前键入

只需通过解析器映射值即可

.mapterm=>this.utilities.resolveJsonReferencesterm 总而言之:

搜索=文本$:可观察=> 正文$ .debounceTime200 .DistinctUntil已更改 .do=>this.search=true .switchMapterm=> this.colorService.searchColorsterm//Json结果需要循环引用解析器 .mapterm=>this.utilities.resolveJsonReferencesterm .do=>this.searchFailed=false .catch=>{ this.searchFailed=true; []的可观测回报率; } .do=>this.search=false;
谢谢:编码快乐
 search = (text$: Observable<string>) =>
    text$
    .debounceTime(200)
    .distinctUntilChanged()
    .do(() => this.searching = true)
    .switchMap(term =>
        this.colorService.searchColors(term) // Json result needs circular reference resolver
        .do(() => this.searchFailed = false)
        .catch(() => {
            this.searchFailed = true;
            return Observable.of([]);
        }))
    .do(() => this.searching = false);
return this.colorService.searchColors(term)
        .subscribe(
        res => {               
            this.colors= this.utilities.resolveJsonReferences(res);
        },
        err => {               
        });