2017-08-03 17 views
2

1)以下のコードはXとYのどちらかを受け入れ、サービスを呼び出してobeservableに値をプッシュします
2)結果とobeservableは空でなければならないと私はinvaild入力のためのいくつかの警告をスローする必要があります
3)どのように私はここでその条件をチェックできますか?rxjsの観測可能な配列の長さを確認する方法

私はisEmpty funtionを試してみましたが、これでうまく動作しませんでしたか?

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(); 
}; 

答えて

0

RxJSのコールバックから例外をスローすると、それが捕捉され、エラー通知として送信されます。

これは、空の観測を返すためにcatch()を使用できることを意味します:

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