问题标签 [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 投票
1 回答
1638 浏览

swift - 触发 CombineLatest 在 Combine 中传播初始值

我有两个字符串发布者和一个返回 AnyPublisher 的计算属性。逻辑很简单,但我想知道是否有任何方法可以传播初始值。我认为这应该是可能的,因为出版商有初始值。

在 VC 中,我从 ViewModel(来自 textField)为 Publishers 分配新值。

然后我将 Publisher (combineLatest) 分配给我的按钮:

在 VM 中,我有两个发布者:

和CombineLatest:

当我开始在两个文本字段中输入时,validatedText 才开始发布新值。例如,我尝试在 VM 的 init 中分配一些新值(给第一个和第二个 Publisher),但它也不起作用。有什么方法可以做到这一点,否则我将不得不在不使用组合的情况下设置按钮的初始状态(禁用它)?

0 投票
1 回答
43 浏览

rxjs - rxjs:如何理解这种 combinelastest 行为

在我的应用程序中,我遇到了与combineLatest操作员相关的奇怪行为。我通过在线演示重现了这个问题:

注意:请忽略这个demo中的这个业务逻辑,这不是很合理,我只是想在技术层面重现这个问题。

https://stackblitz.com/edit/angular-qcdslo?file=src/app/app.component.ts

这个方法使用 combineLatest 来组合两个 observables:limit$ 和 offset$。并向 API 发送请求,其中 limit 和 offset 的值只是 API 的参数。

我通过以下方法每 5 秒将计数器值增加 1:

最后,由于某种原因,我还需要按以下方式每隔 6 秒调用一次 testRequest 方法:

那么网络请求行为如下:

我不明白为什么limit=5&offset=0反复发生。谢谢你。

0 投票
1 回答
2045 浏览

rxjs - 如何正确使用静态 combineLatest

RxJSv.6.5 开始,不推荐使用静态combineLatest语法 combined$ = combineLatest(a$,b$,c$);

相反,您应该使用以下语法:

combined$ = combineLatest([a$,b$,c$]);

他们在哪里:a$: Observable<T>, b$: Observable<U>, c$: Observable<V>

这个声明虽然给了我几个 linting 错误:

参数类型 [Observable<ObservableValueOf<Observable<T>>>, Observable<ObservableValueOf<Observable<U>>>, Observable<ObservableValueOf<Observable<V>>>] 不能分配给参数类型 [Observable<ObservableValueOf<Observable<T >>>]

那么,我的错误在哪里?非常感谢。

0 投票
1 回答
84 浏览

rx-swift - RxSwift 结合异构的 observables

我在领域数据库中有两个对象聊天和消息。我从 db 获取并获得两个 observables。消息对象有chatId,我可以通过它获取聊天对象。chats() - 给出 Observable<[Chat> messages() - 给出 Observable<[Messages>

问题是当我在messages() 上使用map 函数时,我得到了chatId,现在我需要聊天数组来过滤chatId 并获取聊天对象。

我怎样才能做到这一点?我可以结合两个可观察对象并在单个闭包中发出两个数组吗?如果是,那么如何?

0 投票
2 回答
1394 浏览

angular - RXJS - Angular : Two Observable should return Observable

I want to evaluate two observable<boolean> and I would like to save the flow in another observable<boolean>.

I tried combineLatest(obs1$, obs2$); but it generates an observable<[boolean, boolean]>.

Is there a better function than combineLatest to evaluate both observables and returns another observable<boolean>?

0 投票
1 回答
686 浏览

android - RxJava Kotlin combineLatest 在第一个元素之前超时

我正在 Kotlin 中开发一个 android 应用程序。我有 3 个实时数据 observables。数据来自 Firestore。它们被包裹在 RxJava 的 Observable.combineLatest() 方法中。我想在第一次数据检索时设置超时。

我试图在每个可观察对象上设置超时函数,但是在加载了所有 3 个可观察对象的初始数据后,它们会抛出 TimeoutException。

如果至少有一个 Observables 在 10 秒内没有发出任何项目,我预计 Observable.combineLatest() 在初始检索时会出现 TimeoutExceiption。如果所有 observables 至少成功发出一次数据,那么就不应该有 TimeoutException。

0 投票
1 回答
398 浏览

angular - 订阅 combineLatest 中的所有 observables

在我的代码中,我打开了一个matDialog允许的 XLSX 提取。

打开这个matDialog时,数据被加载到 中ngOnInit(),这可能需要一些时间。这就是为什么我使用combineLatest()withfilter()允许我等待三个查询的结果以允许提取。我现在想添加一个mat-progress-bar determinate以查看提取的去向。为此,我希望能够根据progress收到的每个结果修改我的变量。

所以我map(result => {this.progress = this.progress + 30;}在每个请求上都使用了来增加进度。它有效,但打破了我的combineLatest(). 进度停止在 90%,我找不到解决方案。

代码:

谢谢你的帮助。

0 投票
3 回答
3773 浏览

angular - Angular 如何使用 combineLatest 组合来自网站 url 栏的路由和查询

我试图从 url 栏中获取路线和查询。下面的代码来自 CodeWithMosh 的教程。我在 combineLatest 方法中遇到编译错误。

错误如下:

(属性) paramMap: Observable 类型的参数'{ paramMap: Observable; queryParamMap:可观察的;}' 不可分配给“ObservableInput”类型的参数。
对象字面量只能指定已知属性,而“ObservableInput”类型中不存在“paramMap”

我是角度的新手,我不确定错误是什么意思,我已经尝试遵循这个堆栈溢出答案,但我仍然得到错误。谢谢你。

完整代码如下:

0 投票
3 回答
697 浏览

angular - 如何在其中一个流依赖于其他流之一的情况下使用 combineLatest?

我有一个从后端获取数据的 Angular 解析器。我有以下调用要执行:

我正在尝试使用 combineLatest 但不确定如何在我的场景中使用 RxJs。我希望在解决之前完成所有请求,但 GetPersons() 应该将 GetSites() 结果中第一项的 id 作为输入。这是怎么做到的?

0 投票
1 回答
185 浏览

angular - Invoke modal inside SwitchMap in angular2 resolver

I have a requirement of displaying modal popup based on warning message inside angular resolver. I am making a service call to API and using combineLatest and SwitchMap returning multiple responses. I need to display modal popup based on API service response result and redirect to different route if that modal pop up shown and clicked. Otherwise, resolver can return mutiple responses. I have tried below code and when debugging, my modal is not being hit and skipped and returns the responses. what changes to be done in below code so that when any warning message available, modal could be shown up and route to different page? I have searched other questions and could not see relevant like this.

Modal.Component.ts