javascript - RxJS/Angular 2 - 拆分可观察数组

标签 javascript arrays angular rxjs observable

我正在请求一个 API,它返回一个数组。 现在我想把这个数组拆分成它的组件,这样我们就可以使用例如Observables 的“take”函数。

我正在使用 Angular 2/RxJS。

我目前的工作代码是:

public getFiltered(groupName:string, start?:number, num?:number):Observable<AddressGroupInfo> {
    start = start || 0;
    num = num || 0;

    return new Observable((observer) => {
        this.apiClient.post('AddressGroup/GetFiltered', {
            GroupName: groupName,
            StartValue: start,
            ResultCount: num
        }).map((pagedResultOfAddressGroupInfo:PagedResultOfAddressGroupInfo) => {
            return pagedResultOfAddressGroupInfo.ItemList;
        }).subscribe(
            (itemList) => {
                for (let item of itemList) {
                    observer.next(item);
                }
                observer.complete();
            },
            (error) => observer.error(error)
        );
    });
}

有没有办法摆脱外部 Observable 并只使用内部 Observable 上的方法来拆分数组?

谢谢和问候

多米尼克

最佳答案

假设您的 API 返回解析为数组的 promise ,您可以使用简单的 concatMap。例如(jsfiddle):

public getFiltered(groupName:string, start?:number, num?:number):Observable<AddressGroupInfo> {
start = start || 0;
num = num || 0;

return Rx.Observable.from(this.apiClient.post('AddressGroup/GetFiltered', {
        GroupName: groupName,
        StartValue: start,
        ResultCount: num
    })).concatMap(x => x)
  });
}

关于javascript - RxJS/Angular 2 - 拆分可观察数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37587772/

相关文章:

javascript - 如何在meanjs中正确包含textAngular?

javascript - 使用javascript从日期中删除时间并将其传递给excel

arrays - 从基于另一个数组的数组中删除对象

angular - 如何覆盖 angular-material2 样式?

angular - 将 Angular [ngClass] 与 bool 变量一起使用

javascript - 提交和值更改事件上的 Angular 4 ControlValueAccessor 值

javascript - 使用 JavaScript 编辑 XML 文件?

javascript - 服务器上的 session 管理 HTML 客户端和 PHP

java - Camel sql存储java,无法输入数组作为oracle存储过程的输入参数

javascript - 使用 Javascript map() 函数返回 JSON 对象的子集