角度 4 可观察分叉连接数组



我有一个关于 Angular 4 和 Observable 的快速问题。在我的程序中,我有一个组件,它创建了一个应该发送到 API 的"事物"列表。其次,我有一个服务,它获取一个元素("事物" ->一个!(,将其发送到 api 并返回一个可观察对象。代码如下:元件:

saveTimers() {
    // gehe alle selektierten Timer durch und lege Sie an
    let timerSuccess = [];
    let timerFailed = [];
    let timers = [];
    for (let epgEntry of this.searchResult) {
        if (epgEntry.checked) {
            let timer = new Timer;
            // magic
            this.timerService.saveTimer(timer).
                subscribe(
                data => {
                    console.log(data);
                    if (data) {
                        timerSuccess.push(timer);
                    } else {
                        timerFailed.push(timer);
                    }
                },
                error => { this.variables.setFailure(error); }
                );
        }
        }
//both empty, because api didn´t return yet
        console.log(timerSuccess);
        console.log(timerFailed);
        if (timerSuccess.length > 0) {
            this.variables.setSuccess('Timer erfolgreich angelegt');
        }
        if (timerFailed.length > 0) {
            this.variables.setFailure('Timer konnte(n) nicht angelegt werden');
        }
    }

服务:

saveTimer(timer: Timer): Observable<boolean> {
// magic --> returns an observable
}

现在的问题:我如何使用 Observable.forkJoin(((在组件中(一次执行所有 api 调用(顺便说一句,等待所有 api 调用(?

非常感谢!

像这样:

Observable.forkJoin(Observable.of(YOUR_ARRAY), saveTimer(timer: Timer))
    .switchMap(joined => Observable.forkjoin(http.post(joined[0]), http.post(joined[1])))
    .subscribe();

在第一个分叉连接中,您可以组合要发送的值。在第二个中,您将合并两个 api 调用的结果。

最新更新