以可观察的顺序使用外部变量的问题

时间:2018-10-16 14:49:36

标签: rxjs reactivex

在序列内部使用可观察序列外部的变量时会出现什么问题?

例如:

updateCar(newCar: any): Observable<any> {
    return of(...).pipe(
        switchMap(
            (value: any) => {
                if (newCar.has4Wheels && value.lovePizza) {
                    // return a 4 wheel observable
                } else {
                    // return a not 4 wheel observable
                }
            }
        ),
        switchMap(
            (value: any) => {
                if (newCar.has4Windows && !value.lovePizza) {
                    // return a 4 window observable
                } else {
                    // return a 2 window observable
                }
            }
        )
    );
}

我知道上面的例子很奇怪,但是我只是用它来问这个问题。

在序列内部使用newCar可能会出现什么问题,例如在序列外部使用示例中的示例?如果没有问题,那就太好了!只是觉得我的用法有问题。

1 个答案:

答案 0 :(得分:1)

我什么都没想到(至少在您不修改newCar的范围内)。

确实可以重写它,并从以下内容开始:

of([whatever, newCar])
  .pipe(
    switchMap(([whatever, newCar]) => {
      ...
    })
  )
  ...

但是我认为这是没有必要的,只会使事情变得更加复杂而没有任何实际好处。