concatMap向数组添加更多项

时间:2018-01-26 22:39:42

标签: javascript angular rxjs

我有以下代码:

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的常见行为。

有什么想法吗?感谢

0 个答案:

没有答案