当前位置: 首页 > 知识库问答 >
问题:

管道一个可观察的,以更新项目列表与来自api的结果

端木望
2023-03-14

我有一个可以观察到的项目列表。我需要管道observable以便每个项目将执行api调用,用api调用的结果更新自己,并最终提供observable项目的更新列表。

我可以使用哪种RXJS运算符来执行此操作?

共有1个答案

淳于熙云
2023-03-14

如果你可以按顺序做,你可以尝试这样的方法

const items$ = from([{id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 3, name: 'c'}])

const request = async (data) => {
  // data here would be any single object in your array
  // and `doHttpRequest` is any function that returns the type
  // given the original object
  const type = await doHttpRequest(data)
  return {
    ...data,
    type
  }
}

const results$ = items$.pipe(
  // flatMap being used here since we're not returning
  // a synchronous value from request
  flatMap(request),
  toArray()
);

// somewhere else in your code
results$.subscribe(value => console.log(value));

如果省略toarray部分,可以将可观察对象保留为对象流,而不是在最后完成单个数组

 类似资料:
  • 我需要帮助,以获得一个指定的项目列表,并将它们添加到组合框。 我的观察列表包含从数据库接收的值(在特定的只有3列的表中),我想在组合框中只显示一个列值。选择组合框时,其他值在2个文本字段中收费。 代码如下。 导入Accettazioni模型: 重要信息控制器: 现在,逻辑似乎工作正常,但是我的组合框不包含值nomeProperty()。 我该如何解决? 预先感谢

  • 我正在开发一个功能,我需要根据本地数据库数据过滤掉网络响应数据。 例如,我的网络层返回一个项目列表,我的数据库层返回一个可观察的ID列表。现在,我只想从网络层返回那些id与数据库层响应中的任何人都匹配的对象。 下面的代码从网络获取数据并将结果保存到数据库(缓存)。 我还有一个方法可以返回需要过滤的场馆列表 现在,我如何扩展前面的链,使用getDislikedVinces()observate从网络

  • 问题内容: 我正在尝试在JavaFX 8中创建一个,需要一个。我不知道如何创建一个……但是,如果我尝试: 我收到一个错误消息,说它无法实例化,因为它是抽象的。可以理解的 如果我查看该文档,可以看到,但是我做不到: 因为没有适用的构造函数。显然我需要传递给,这很奇怪,因为我无法创建。 我不确定如何解密。如果我尝试 出于绝望,我得到了一个更加复杂的错误。 也不起作用。它以某种方式起作用(但显然使用了不

  • 当控制器对DataModel中的String statusText进行更改时,我调用setChanged()&notifyObservers(This.statusText),然后在Display类中调用update(Observable o,Object arg)。 我的问题是,当我有多个字符串用于不同的标签时,我应该如何继续?我的第一个想法是将所有字符串放入一个列表中,然后更新方法看起来如下所

  • 我已经实现了一个angular应用程序,它请求一个项目列表来填充一个表格。在我的服务中,我有以下函数,它从服务器请求项目列表: 编辑:表获取数据的方式: 在HTML中,我将数据源绑定到mat表

  • 我有一个id列表,并且有一个方法,它接受id并返回可观察的 假设我有用户id(1),我需要使用此方法更新他的配置文件