reactivex相关内容

如何在计数时限制重试

我在retryWhen中使用了PublishSubject,以允许用户重试该操作,类似于this answer。一切正常,但有一个问题-在用户点击重试3次后,我应该不再允许重试,并应该中止操作。有没有办法将重试次数限制在3次以内? 我已尝试PublishSubject.Take(3)运算符,但不起作用。 推荐答案 运算符(如retryWhen)具有次要流,其结果会影响主要流。因此,流操 ..
发布时间:2022-04-10 23:04:11 其他开发

RXJS:聚合去抖动

我的用例如下:我得到事件,这些事件有时会突然发生.如果发生突发,我只需要处理一次.去抖就是这样做的. 然而,去抖动只给我一个突发的最后一个元素,但我需要知道突发中的所有元素才能聚合它们(使用平面图). 这可以通过定时窗口或缓冲区来完成,但是,这些是固定间隔,因此缓冲区/窗口超时可能发生在突发的中间,因此将突发分成 2 部分而不是 1 部分来处理. 所以我想要的是像 ..事件:一 ..
发布时间:2022-01-01 22:28:18 其他开发

如何在 RxJS 中完成 Observable

假设我们有一个 Observable: var observable = Rx.Observable.fromEvent(document.getElementById('emitter'), 'click'); 我怎样才能让它Complete(什么会为所有订阅的观察者触发onComplete事件)? 解决方案 在目前的形式中,你不能.您的 observable 源自一个不完整的源,因 ..
发布时间:2022-01-01 22:17:49 前端开发

RxJs 捕获错误并继续

我有一个要解析的项目列表,但其中一个的解析可能会失败. 捕获错误但继续执行序列的“Rx-Way"是什么 代码示例: var observable = Rx.Observable.from([0,1,2,3,4,5]).地图(功能(值){如果(值 == 3){throw new Error("值不能为3");}返回值;});可观察的.订阅(功能(值){console.log("on ..
发布时间:2022-01-01 21:59:44 前端开发

链接依赖的 observables

我需要创建依赖 API 调用,其中第二个调用需要第一个调用返回的值.首先想到的是使用 flatMap ApiManager.shared.createReport(报告:报告).flatMap {(报告)->可观察的在return ApiManager.shared.createReportStep(reportID: report.ID)} createReport 返回 Obser ..
发布时间:2021-07-14 19:21:34 移动开发

当其他人在 RxJs 中开火时推迟可观察

我在一个页面上有一个表格和两个订阅: 第一个重新加载表数据.它有一个延迟,因为它调用了一个 api. 第二个亮点数据.不影响表数据. 当订阅一个一个地触发时,一切正常,但是当它们同时触发时,数据会被高亮显示,很快就会重新加载,所以高亮消失了. 您可以在此处查看. 如果正在重新加载,是否有办法推迟突出显示? 也许我可以通过引入 loading 变量来实现这一点,但我正 ..
发布时间:2021-07-14 19:19:13 其他开发

每 1000 毫秒间隔获取一个事件

我有无限的事件流,可以发出一些连续的事件部分,我想每毫秒每 1000 个事件. 我尝试了 debounceTime/auditTime/throttleTime 但它们不包括我想要的所有事件 - 以演示我创建的行为 我还尝试使用 zip/combineLatest 并通过区间 但没有运气 解决方案 UPDATED 基于评论中的讨论 const events$ = tim ..
发布时间:2021-07-14 19:15:38 其他开发

RxJS 与 rx 节点

RxJS 和 rx-node? 为什么我不应该在我的 NodeJS 项目中使用 RxJS 而不是 rx-node? 解决方案 rx-node 存储库的第一行就介绍了这一点: 该项目为 Node.js 和 io.js 提供了 JavaScript 响应式扩展 (RxJS) 绑定,以抽象 EventEmitter、Streams 等. RxJS 是官方存储库.rx-node 添加 ..
发布时间:2021-07-14 19:14:20 其他开发

RxSwift - 如何限制缓冲区的时间跨度

我正在尝试重新创建一个代码片段,该代码片段主要计算按钮连续点击的次数.代码在 RxJS 中,我正尝试将其转换为 RxSwift 以用于学习目的,但无法弄清楚缓冲区和节流部分. 可以在jsfiddle上查看js代码 目前我有这个 tapButton.rx.tap.buffer(timeSpan: 0.25, count: 10, scheduler: MainScheduler.in ..
发布时间:2021-07-14 19:14:18 移动开发

如何在 rxjs 中为每个订阅在可观察管道上执行一次初始化逻辑

所以我有这个 observable 管道,我需要在订阅开始时执行一次操作,就像您可以使用 finalize() 在订阅结束时执行一次操作一样订阅 所以这就是我的开始,不幸的是,它会在每次针对主题进行的 next() 调用时启动一次. const notificationSubject = new BehaviorSubject(未定义);const 通知$ = this.notifica ..
发布时间:2021-07-14 19:10:16 前端开发

可观察类型上不存在 mergeMap

我试图在 rxjs6 中使用 mergeMap 并且我收到此错误: 属性“mergeMap"不存在于类型“Observable" 我试过 import 'rxjs/add/operator/mergeMap'; 但它不起作用. 我做错了什么? import {from, Observable} from 'rxjs';导出类测试{public doSomething(): Ob ..
发布时间:2021-07-14 19:06:02 其他开发

RxJs:条件为真时缓冲事件,条件为假时传递事件

我在下面创建了 Observable 构造函数,其工作原理如所述.有谁知道使用 RxJs 附带的运算符是否有更简洁的方法来实现相同的行为?我在看 bufferToggle 接近所需的行为,但我需要在缓冲区关闭时传递发出的值. 函数描述:如果condition发出true,则缓冲发出的source值,并通过发出的source值source 值如果 condition 发出 false.如果条件 ..
发布时间:2021-07-14 19:05:13 其他开发

如何立即开始 Observable Interval?

我希望我的 observable 立即触发,并且每秒触发一次.interval 不会立即触发.我发现了这个问题 建议使用 startWith,它会立即触发,但随后我得到了重复的第一个条目. Rx.Observable.interval(1000).take(4).startWith(0).subscribe(onNext); https://plnkr.co/edit/Cl5DQ7znJRD ..
发布时间:2021-07-14 19:01:53 其他开发