angularjs - 发出 observable 结果图而不等待内部 observable
问题描述
目前我有以下类型的代码:
obsC$: Observable<Result[T][]> = combineLatest([this.obsA$, this.obsB$]).
pipe(map(([resultA, resultB]) => ...),
switchMap(this.serviceA.fetch(resultA).pipe(map((resultD) => ...)))
)
这导致 obsC$ 不得不等待this.serviceA.fetch的结果,我不想这样做,因为它可能需要一些时间。相反,我想在 switchMap 之前发出一次结果,然后在 switchMap 完成后再次发出。有没有办法用上面提到的方式做到这一点?还是我必须将其重构为单独的 Observables?
解决方案
您可以重写您的switchMap()
和merge()
第一个结果,以便它在发出之前立即this.serviceA.fetch
发出。
switchMap(resultA => merge(
of(resultA),
this.serviceA.fetch(resultA).pipe(map((resultD) => ...))
))
推荐阅读
- android - 如何在应用程序或浏览器中存储 JWT 和刷新令牌?
- java - 导航项未单击
- identityserver4 - 当身份服务器发送未经授权的 401 消息时,如何添加 error_response
- c# - 如何从 LINQ-to-SQL 大型数据集更新中获得更好的性能
- ios - 如何分别删除有关 Firebase/Analytics 和 swizzing 的 firebase 警告和控制台消息?
- javascript - 如何循环遍历数组并打印出正值?
- ruby-on-rails - Rails 的嵌套形式给出了 Unpermitted 参数的问题::image
- c# - 递归类型数组的递归方法重复值
- c# - 在 ASP.NET Core 中测量异步与同步代码的性能
- javascript - 在没有连接 HOC 的情况下使用带有 react-hooks 的 redux