如何返回combineLatest 结果和switchMap 值?

Ton*_*ith 2 rxjs

这基本上就是我所追求的。只是不确定在切换映射中返回所有三个组合的最佳方法。

unsubscribes = combineLatest(
      apiCall1,
      apiCall12,
    ).pipe(
      switchMap(([apiCall1Res, apiCall2Res]) => {
        return apiCall3(apiCall1Res.Id)
      })
    ).subscribe(([apiCall1Res, apiCall2Res, apiCall3Res]) => {
      ///Do work
    })
Run Code Online (Sandbox Code Playgroud)

小智 5

如果 apiCall3 应在 1 和 2 之后:

combineLatest(
  apiCall1,
  apiCall12,
).pipe(
  switchMap(([apiCall1Res, apiCall2Res]) => {
     return apiCall3(apiCall1Res.Id)
        .pipe(map(apiCall3Res => [apiCall1Res, apiCall2Res, apiCall3Res]));
})
Run Code Online (Sandbox Code Playgroud)

使用...您可以在这里节省一些空间:

combineLatest(
  apiCall1,
  apiCall12,
).pipe(
  switchMap(results => apiCall3(apiCall1Res.Id)
   .pipe(map(apicallResult3 => [...result, apicallResult3])
  )
)
Run Code Online (Sandbox Code Playgroud)