在可观察序列中使用外部变量的问题

Problems with using external variables in an observable sequence

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

例如:

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 会出现什么问题,就像在示例中使用它时在序列外部使用一样?如果没有问题,那就太好了!我就是觉得这个用法有问题。

我觉得没什么(至少在你不修改的情况下newCar)。

的确,您可以重写它并从以下示例开始:

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

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