javascript - Angular 6 - 比较两个可观察长度

标签 javascript angular typescript angular6 angular2-observables

有没有办法比较两个 observable 的当前长度?

编辑:这是将数组与可观察对象进行比较。 我想比较所有元素的计数(请参见下面的示例)。

在我尝试执行此操作时,它们已经完全加载。不等待任何数据。

例如我想做的:

if (array1.length < array2.length) {
    array1.foreach(item => item.isSelected = true);

我尝试使用pipe, map, tap,但它们会在一段时间后解决并且对我不起作用。我知道这可能会破坏 obserables 概念,但想知道是否可以选择这样做?

最佳答案

在另一个内部使用一个 Observable 的解析值。

ob1 = of([1,2,3])
ob2 = of([1,2,3, 4]);


  foo() {
  this.ob1.pipe(
    switchMap((data1)=> {
      return this.ob2.pipe(
        map((data2) => {
          console.log(data1, data2); // will print [1,2,3] [1,2,3,4],
                                     //  which now you can compare easily
        })
      )
    })
  ).subscribe();
}

https://stackblitz.com/edit/angular-jmgdyk?file=src%2Fapp%2Fapp.component.ts

关于javascript - Angular 6 - 比较两个可观察长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51932690/

相关文章:

javascript - 纸质工具提示未显示

javascript - 重新加载 jquery 选项卡会导致重复事件触发

javascript - 是否可以使用 html2canvas 截取 URL?

javascript - 在 Angular 中等待 http 请求

c# - 在网络浏览器中查看 pptx 文件

knockout.js - 大胆错误 : Object doesn't support property or method 'filter'

javascript - 在多焦点 d3 力布局中重新定位节点

javascript - Angular 7 : Transfer data from one application to another application

angular - ionic 3 可排序网格或表格

javascript - Bot 框架 (v4) - 如何从自定义提示验证中获取状态