我有以下代码:
public getDomains(): Observable<any[]> {
const customer = this.storage.getCustomer();
const apiUrl= this.configuration.getApiUrl(customer);
return this.http.get((`${apiUrl}/domains`).toLowerCase())
.map((response) => response.json() || []);
}
const domains = this.myService.getDomains().
.shareReplay()
.concatMap((domains) => domains.map((domain) => this.toDomainModel(domain, myObservable)))
.filter((domain) => this.isValidDomain(domain))
.toArray();
我的网络标签显示请求的响应,其中包含3个项目。但不知何故,即使在删除所有内容并仅离开.toArray()
之后,它也会转换为包含3个元素的数组,其中每个元素本身都是一个包含3个项目的数组。网络响应在某处重复了4次。
我调用一个service方法,它返回一个项目数组,然后通过这个方法链发送。出于某种原因,我认为它可能与concatMap
有关,我最终会得到比最初返回的端点更多的项目。
我应该从请求中返回3个项目,然后过滤器应该删除其中的2个,所以我应该留下一个。我对rxjs
还不熟悉,并且很好奇这是否是concatMap
的常见行为。
有什么想法吗?感谢