繁体   English   中英

等待 observable 的值(作为列表)使用列表中的每个成员调用另一个 observable?

Wait for an observable's value (as a list) to call another observable using each member from the list?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在为我的应用程序使用 3 个端点,其中 1 个端点取决于另一个端点的响应,即一个列表,然后我需要使用列表中的每个项目才能使用另一个端点,我们称它们为epAepBepCepA返回一个列表,然后我在epB上使用这个列表,类似于epA.Foreach( x => epB(x))并且我试图将epBepC组合成一个组合列表,因为它们共享相似的字段。

我的问题是,我使用 angular 和 observables 太新了,我不知道是否有办法将这些 epB 和 epC 结果结合起来(不提目前,我订阅了 observables 并将其值分配给我需要的其他对象)...如果有人可以帮我一把,将不胜感激。 抱歉,如果这太乱了,我在 angular 中发帖和编码的经验很少。

这是我目前拥有的一些代码......它有点难看,但它可以完成工作

代码

this._serverRequests.epA(this._Token).subscribe(x => {
    this.servers = x;
    x.forEach(server => 
      this._serverRequests.epB(server)
      .subscribe(info => {
         this.serverInfo = info;
         this.GridModel.data = info['States'];
         this.GridModel.data.forEach(se => {
             se.Start = this.formatValuesPipe.transform(se.Start, 'grid');
         });
         this.GridModel.data.map( o => {
            o.ServerUrl = server;
         });
       })
     );
},
   error => this.errMsg = <any>error
);

this._serverRequests.epC(this._Token).subscribe(lic => {
   this.licensesList = lic;
   this.licensesModel.data = this.licensesList.LicenseUsageList;
   this.licensesModel.data.forEach(li => {
      li.AcquisitionTime = this.formatValuesPipe.transform(li.AcquisitionTime, 'grid'); 
   });
});

我也试过forkjoin,但由于epA返回一个列表,我不知道如何调用forkjoin中的每个项目

1 个回复

您可以将第一次调用的响应 map 转换为调用数组,然后使用 combineLatest 给出所有响应的数组。

this._serverRequests.epA(this._Token).pipe
  map(server => this._serverRequests.epB(server)),
).subscribe(requests => {
  combineLatest(requests).subscribe(results => {
    // You have an array of the multiple results here
  })
});
1 如何使用另一个Observable的值操作Observable中的项目列表

这是我的问题。 假设我有一个带有国家/地区清单的可观察物,而另一个可观察物根据一个键返回一个推断。 我该怎么办到最后: 我的麻烦是与第二个可观察到的一起工作。 这不起作用,因为我有ScalarObservable ...

2018-11-02 15:38:17 1 21   rxjs
3 可以从时间表列表中观察到

如果我有一个包含时间戳的对象列表 - 如何在时间戳之间的相对时间生成一个可观察到的事件? 例如。 如果我有三个带有时间戳的对象2014-01-01 10:30,2014-01-01 10:45和2014-01-01 11:30,我希望第一个事件立即开始,接下来的15分钟后,最后一个45分 ...

5 从 `angular` 中的可观察列表中获取可观察项目

我在服务中有一个项目列表,以及一个将该列表包装在可观察对象中的吸气剂。 observable 在async pipe 的组件视图中使用,并按预期工作。 当列表更新时,视图也会更新。 我还有一个不同的组件,它需要根据 id 从该列表中获取特定项目的 observable。 问题是具有该 id 的项目 ...

6 如何等待有诺言的可观察对象的每个值

假设我有这个可观察的: 我如何等待承诺的每个价值? 以下代码将仅返回最后一个值(调用complete()之前的值): 但是我希望能够一路获取每个价值。 我可以做这样的事情: 但这并不理想,因为我每次都必须增加该数字,并且即使只有3个值,在示例中take(1000) ...

8 访问另一个类中的可观察列表

假设我有一节课: 如果我有另一堂课 我尝试了ObservableList&lt;Future&gt; x = FutureTask.call()但我一直收到静态引用错误。 FutureTask只在代码中使用过一次,所以我必须将它声明为static吗? ...

2015-06-24 19:19:06 1 759   java
10 使用来自另一个 observable 的值过滤一个 observable

我有两个可观察的: 表示复选框输入列表的 observable。 表示来自服务器的事件流的 observable。 我想使用第一个中的值过滤第二个 observable。 从服务器接收的值包括一个tag属性,它对应于复选框列表中的值。 由以上两者组合产生的可观察量只会从其tag属性包 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM