Angular rxjs concat 操作符连接类型不同的数据流

发布于 2022-09-12 13:04:51 字数 609 浏览 21 评论 0

问题产生:

列表关系: 项目(列表1)>工作簿(列表2)
在列表2中,需要从多个接口取回数据,合并一起后,展示.使用`concat`操作符,如下操作,输出结果,只有`this.projectsTem`的数据.
`this.projectsTem`已经正常拿到数据.

问题关键点:`两个流的类型不一样,该如何处理?` 分别是`Observable<WorkBook>`,`Observable<Project[]>`
workbooks: Observable<WorkBook>;
projectsTem: Observable<Project[]>;
... ...
this.workbooks = this.dataServe.getWorkbooks(this.projectId).pipe(concat(this.projectsTem))

列表1:
image

点击Data展示列表:2
image

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

捂风挽笑 2022-09-19 13:04:51

使用mergeMap或者mergeMapTo合并流。

const workbooks$ = of('hello'); // 字符串
const projectsTem$ = of(['world', 'girl']); // 数组

const test = workbooks$.pipe(
    mergeMapTo(projectsTem$, (x, y) => {
      return x + '' + y[1];
    })
  );

test.subscribe(val => console.log(val));
// -> hello girl
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文