首页 > 解决方案 > 在订阅时处理 forkJoin 中的错误

问题描述

我有下一个功能:

   saveTable() {
    ...

    let promises = [];

     for (index = 0; index < this._TOTAL.length; ++index) {
       let promise = this.db.object(ref).update(this._TOTAL[index]);
       promises.push(promise);
     }

     Observable.forkJoin(promises).subscribe(() => {
       this.messagesService.createMessage('success', `Saved`);
       this.router.navigate(['/dashboard/my-calculations']);
     })
    }

在这种情况下我该如何处理错误?实际上,我只需要使用thencatch毕竟我的承诺解决了,所以forkJoin从根本上不是为我使用。

标签: angularpromiserxjsfork-join

解决方案


forkJoin如果它是 fork-joining 中的任何一个(至少一个)抛出错误Observables,则会抛出错误。您可以在错误处理程序中处理它:

Observable
    .forkJoin(promises).subscribe(() => {
        this.messagesService.createMessage('success', `Saved`);
        this.router.navigate(['/dashboard/my-calculations']);
    },
    (error) => {
        //handle your error here
    }, () => {
        //observable completes
    })

推荐阅读