【问题标题】:How to check Observable array Length in rxjs如何在 rxjs 中检查 Observable 数组长度
【发布时间】:2017-08-03 07:16:31
【问题描述】:

1) 下面的代码接受 X 和 Y 并调用一些服务并将值推送到 obeservable
2) 当我们给出无效输入时,即 X,Y 它必须给出空结果,并且 obeservable 必须为空,我必须对无效输入发出一些警报
3)那么我如何在这里检查这种情况?

我尝试了 isEmpty 功能,但它不起作用请帮我解决这个问题?

const gridDataLoadRequest = GridDataLoadRequest
    .withLatestFrom(filterParams)
    .map(_.last);

return gridDataLoadRequest
    .map(partitionedCodesToSearchParams)
    .flatMap((vals) => {
        let [ X, Y ] = vals;

        let A = _.isEmpty(X.codes)
            ? Observable.of([])
            : storePlanningService.searchCustomerChoices(X);

        let B = _.isEmpty(Y.codes)
            ? Observable.of([])
            : storePlanningService.searchCustomerChoices(Y);

        return Observable.zip(A, B).map(_.flatten);
    })
    .publishReplay(1)
    .refCount();
};

【问题讨论】:

    标签: javascript angularjs rxjs


    【解决方案1】:

    如果您从 RxJS 中的任何回调中抛出异常,它将被捕获并作为错误通知发送。

    这意味着您可以使用catch() 返回一个空的 Observable:

    .flatMap((vals) => {
      ...
      throw Error("It's broken");
    })
    .catch(err => {
      console.log(err);
      return Observable.empty();
    })
    ...
    

    【讨论】:

      猜你喜欢
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      相关资源
      最近更新 更多