孤独プログラマー譚

孤独死が近い。

RxJS if elseをどう表現するか

iif という関数がある。
iif自体は、Observableを返却する。

let arr = [1, 2, 3, 4, 5]
rx.from(arr)
.pipe(
  op.mergeMap(v => {
    return rx.iif(
      () => v % 2 === 0,
      rx.of(`偶数:${v}`),
      rx.of(`奇数:${v}`),
    )
  })
)
.subscribe(cl)
// 奇数:1
// 偶数:2
// 奇数:3
// 偶数:4
// 奇数:5


別にmapオペレータ内でif文を分岐させれば、十分な気がしてきた。

let arr = [1, 2, 3, 4, 5]
rx.from(arr)
.pipe(
  op.map(v => {
    if (v % 2 === 0) {
      return `偶数:${v}`
    } else {
      return `奇数:${v}`
    }
  })
)
.subscribe(cl)
// 奇数:1
// 偶数:2
// 奇数:3
// 偶数:4
// 奇数:5