我试图在我的代码中使用“取”操作符(学习rxjs),但是它并没有像我想要的那样发送前5。下面是我的简单代码,有人知道如何帮助吗?
countries: Observable<Country[]>;
private searchTerms = new Subject<string>();
this.countries = this.searchTerms.debounceTime(300).distinctUntilChanged().switchMap(
searchTerm => searchTerm ? this.countrySearchService.search(searchTerm) : observable.of<Country[]>([]))
.take(5);发布于 2016-10-07 19:32:36
在阅读了你的评论后,我知道你需要前5个国家。现在请注意,您的可观测到的发射阵列的国家,而不是国家。使用Observable.of而不是Observable.from的原因。因此,正确的语法应该是:
this.countries = this.searchTerms.debounceTime(300).distinctUntilChanged().switchMap(
searchTerm => searchTerm ? this.countrySearchService.search(searchTerm) : observable.from<Country[]>([]))
.take(5);如果您想要一个演示各种用例的示例,请查看这个jsbin。
https://stackoverflow.com/questions/39919530
复制相似问题