问题标签 [combinelatest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
157 浏览

rxjs - 根据一些可观察值过滤 Angular 8 中的多个下拉值

我有以下表单控件(parent1、parent2、parent3),它们是复选框。当用户选中/取消选中其中任何一个时,以下表单数组由多个选择复选框组成,示例数据如下:

我正在尝试使用更高阶的 observables 来实现这一点:

非常感谢任何帮助和指导。提前非常感谢!

0 投票
1 回答
223 浏览

angular - 如何将多个主题合二为一并对每一个变化做出反应

我目前正在构建一个步进组件,该组件在其 ng-content 中呈现了多个步进组件。在步进器组件中,我通过 ContentChildren 访问这些组件。每个步骤组件都有一个 Subject,当 Input 值改变时调用 .next() 。我这样做是为了通知父级(StepperComponent),以便我可以为视图重新创建我的模型。首先,我在 foreach 循环中订阅了每个主题。我想知道是否可以合并我所有的主题并订阅它。因为我真的不在乎哪一步改变了,只是想知道某些步骤改变了。我目前已尝试使用 merge() 和 combineLatest(),当其中一个主题调用 .next() 时,它们都没有触发。

这就是我使用合并和合并最新的方式

步骤定义为

$unsubscribe 只是在 ngOnDestroy 中取消订阅

0 投票
2 回答
106 浏览

angular - 使用管道异步总是卡在加载

我正在joined$使用switchMap和加入一个全局可观察对象中的多个可观察对象combineLatest

这是组件 TS 文件

这是HTML模板文件

编辑:调试后我发现当日期数组为空时会发生错误,因此解决方案包括对日期数组的长度进行测试。问题是当我尝试创建条件时出现以下错误

'(dates: SessionTaskDate[]) => void' 类型的参数不能分配给 '(value: SessionTaskDate[], index: number) => ObservableInput' 类型的参数。类型“void”不可分配给类型“ObservableInput”。

在以下情况下触发:

0 投票
2 回答
2353 浏览

typescript - 如何用未弃用的方法替换 rxJs 中的方法“combineLatest”?

我使用combinlatestrsjx/operator one 实现了方法,它工作正常,但声纳问题说它不推荐使用。所以,我需要将它转换为最新的。但我尝试,只是替换导入它给出了错误。我需要一些专家的帮助才能做到这一点。

0 投票
3 回答
314 浏览

swift - RXSwift ObservableCollection 与 CombineLatest

我正在尝试实现这样的东西,

就我而言,我正在尝试动态创建可观察对象并将其添加到这样的数组中,

但这不起作用,因为 discoverObservables 数组期望 Type 的值,Observable<Any>我正在尝试添加Observable<A?>

我怎样才能正确地做到这一点,我想在我开始处理数据之前确保所有的 observables 都返回数据。

编辑 我试图在添加到视图之前从不同来源加载数据,基本上,我有一个collectionview,每个部分从不同的API加载数据,我试图在添加到之前从所有来源获取所有必需的数据集合视图。

0 投票
1 回答
2328 浏览

angular - Angular 单元测试 combineLatest

我已经开始在 Angular 中使用 Jest Framework 进行单元测试了。但是,我陷入了需要对combineLatest RxJS 运算符进行单元测试的情况。我的组件如下所示。

零件:

我已经嘲笑了我的服务,我的单元测试如下所示。

此测试失败,收到:未定义。但是在使用单个 observable 时,同样的测试也有效。

0 投票
1 回答
342 浏览

rx-swift - RxSwift combineLatest 从最后一个 Observable 发出所有重放的元素

在对一组冷的 observables 使用 combineLatest 时,我看到了一些意想不到的结果。它从除最后一个 Observable 之外的所有 Observable 中发出最新的,而是将第一个 (n-1) 个 Observable 中的最新与来自第 n 个 Observable 的每个元素相结合。

产生输出: (4, "bed") (4, "book") (4, "table")

我原本预计会看到(4,“table”)的输出。

如果我像这样更改可观察对象的顺序:

我得到输出: ("table", 1) ("table", 2) ("table", 3) ("table", 4)

如果我添加一个最终的任意 Observable,那么我只会看到每个第一个的最新的:

产生输出: (4, "table", 42)

这真的是预期的行为吗?

0 投票
2 回答
519 浏览

angular - RXJS combineLatest issue after upgarde 5 to 6

服务.ts 文件

版本 5 代码:

版本 6 代码:

我将这段旧代码修改为一些在线指南的新代码。我面临嵌套combineLatest在此函数中的问题:

错误:

@deprecated — 不再支持 resultSelector,而是通过管道映射

'Observable<[AdapterModel[], ApplicationModel[]]>' 类型的参数不可分配给'OperatorFunction<unknown, unknown>' 类型的参数。

类型 'Observable<[AdapterModel[], ApplicationModel[]]>' 提供不匹配的签名'(来源:Observable):Observable'.ts(2345)

RXJS 版本:“6.6.3”,

让我知道我这边是否需要任何其他信息。提前致谢。

0 投票
1 回答
1702 浏览

rxjs - forkjoin 和 combineLatest rxjs 的区别

两者都用于连接多个流。

由此 我对两者感到困惑,我阅读了 combineLatest 在同步模式下进行调用和 forkJoin 并行调用,

我正在尝试这个

打印

每次结果大约为 5 秒,如果 combineLatest 按顺序发送请求,那么为什么打印持续时间大约为 5 秒。

这是正确的还是有任何其他区别,任何示例代码?

0 投票
0 回答
34 浏览

javascript - Angular / Firestore - combineLatest / switchMap 之后的任何内容都被忽略

我有一个将两个图像上传到 Firebase 存储的功能。上传工作得很好。

但是,在同一个函数中,我有下面的片段,我想用下载 URL 更新 firestore。检查存储后,两个图像都成功地存在。一旦它到达下面的代码片段,什么都不会发生。有什么可以用下面的方法来修复以确保可以设置 firestore 文档吗?

更新