代码之家  ›  专栏  ›  技术社区  ›  prolink007

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

  •  1
  • prolink007  · 技术社区  · 6 年前

    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 回复  |  直到 6 年前
        1
  •  1
  •   martin    6 年前

    我认为没有什么(至少你没有修改 newCar ).

    确实,您可以重写此内容并从以下示例开始:

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

    但我认为这是没有必要的,会使事情变得更复杂,没有任何真正的好处。