【发布时间】:2020-08-12 15:50:44
【问题描述】:
以下代码正在运行。其目的是将返回匹配项的搜索结果转换为每个匹配项的详细信息。
可能有更好的写法:
fromEvent(this.searchInput.nativeElement, 'input').pipe(
debounceTime(500),
).subscribe(async _ => {
const results = await this.database.search(this.searchText);
const arrayOfobservables = combineLatest(results.map(result => this.database.getDetails(result.objectID)));
this.searchResults$.next(arrayOfobservables)
});
this.details$ = this.searchResults$.pipe(
switchMap(val => val)
)
我正在努力的部分是将 observables 数组转换为我可以在 UI 中呈现的 observable 数组。
尤其是switchMap(val => val) 对我来说看起来很奇怪。关于如何真正使这段代码更干净的任何想法?
【问题讨论】:
-
这个视频也可能有帮助。它涵盖了高阶 Observable 的用途和使用,例如 switchMap:youtube.com/watch?v=ldRdjc-60PM
标签: angular typescript rxjs