rxjsでストリームの途中のデータを確認したい : tap

2019-01-20

rxjs 弱者の僕は、ストリームに流れてるデータがどんなものなのか確認したいときがある。 そんなときは tap を使えば、ストリームに影響を与えず console.log などの処理を挟むことができる。

export const fooActionEpic: Epic = action$ =>
  action$.pipe(
    ofType(FOO_ACTION),
    switchMap(action => {
      const body = "bodyだよ";
      const method = "POST";
      const headers = {
        Accept: "application/json",
        "Content-Type": "application/json"
      };
      return ajax
        .post(API_URL, body, headers)
        .pipe(
          tap(res => console.log(res)),
          mergeMap(res => [barAction(res.response), bazAction(res.response)])
        );
    })
);

コードサンプルは前回と同じもの