如何检查rxjs中的Observable数组长度

时间:2017-08-03 07:16:32

标签: javascript angularjs rxjs

1)下面的代码接受X和Y,并调用一些服务并将值推送到obeservable
 2)当我们给出invaild输入即X,Y时它必须给出空结果并且obeservable必须是空的并且我必须为invaild输入发出一些警报
 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();
};

1 个答案:

答案 0 :(得分:0)

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

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

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