问题标签 [rxjs-pipeable-operators]
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.
rxjs - rxjs 5.5+ retryWhen not call source observable?
我觉得我在这里错过了一些非常简单的东西。我正在尝试为 fetch 创建一个简单的重试,但只有其中的代码retryWhen
被执行。我正在使用 React,所以我没有this.http.get
方便。也许这是一个问题from(/*promise*/)
?我试图基于 这篇文章的重试逻辑。
这是我希望看到的:
相反,我得到:
所以它只是重复他 retryWhen 间隔中的代码,而不是重复原始的 fetchData 调用。我可能遗漏了一些对我的 RXJS 知识很重要的东西。
这是测试代码:
angular - Angular 7 按日期排序 Observable.subscribe()?
尝试对返回的 Observable.subscribe() 数据数组进行排序... Angular 7 的新手。我对如何在这里使用 RXJS 方法、我需要在哪里导入什么以及如何对 Event 类型的数组进行排序感到困惑。
事件.ts
事件结果对象.ts
事件服务.ts:
事件列表.ts
rxjs - 无法使用输入流中的 distinctUntilChanged() 过滤唯一值
需要你的帮助。我是 Rxjs 世界的新手,正在尝试使用 distinctUntilChanged() 运算符来避免通过输入框从流中接收到重复值。但我看不出输出有什么不同。可能是我错过了 rxjs 文档的解释。下面是我试图演示此示例的 url。如果您能帮助我对我应该在代码中进行的一些解释和更改提供帮助,那就太好了。
https://stackblitz.com/edit/angular-z1yhec?file=src%2Fapp%2Frxjs-check%2Frxjs-check.component.ts
}
angular - Angular/RxJS - 延迟流直到前一个流完成
我正在构建一个通知组件,它应该向用户显示通知。当一次创建多个通知时,它应该将它们排队。
现在它可以很好地显示第一个通知,但之后它会同时触发 2 个通知(请参见下面的当前输出)。它不会等待上一个通知显示然后在显示下一个通知之前再次隐藏。
通知.api.ts:
通知.component.ts:
app.component.ts:
电流输出:
期望的输出:
我怎样才能解决这个问题?
rxjs - Rxjs `distinctUntilChanged()` 似乎无法正常工作
在 rxjs 流中,我使用distinctUntilChanged
lodashisEqual
过滤掉重复值。但是,它似乎没有按预期工作。采取以下代码片段
在这个例子中,我希望函数const equal
内部tap
永远不会=== true
. 我希望这distinctUntilChanged(isEqual)
会过滤掉任何-->总是isEqual(cachedValue, val) === true
意味着的值。const equal === false
但是,控制台输出显示:
我是否误解了有关distinctUntilChanged()
操作员如何工作的基本知识?我发布了一个简化的示例,因为实际的 rxjs 流非常复杂,但我不希望复杂性会在运算符中产生const equal
任何=== false
影响tap
。
我只是想了解发生了什么,所以任何信息都值得赞赏。谢谢!
更新
应该注意的是,如果我将代码更改为:
然后过滤按预期工作。我的印象distinctUntilChanged(isEqual)
相当于:
我误会/误解了distinctUntilChanged
运营商吗?
angular - Observable 在模板中具有 observable 成员
我有一个 Angular 7 模板,它提供了book$
一个 observabletranslationsAsArray$
作为成员的 observable:
编辑:外观book.translationsAsArray$
如下(仅用于测试目的):
我遇到的问题translationsAsArray$
是被反复重新订阅。
subscribe
当我将解决方案更改为在组件打字稿中调用而不是async
同时使用管道时,book$
问题translationsAsArray$
就解决了。
你知道原因吗?我的模板应该看起来不同吗?
rxjs - 可观察流,其值从其他“一次性”可观察对象中丰富
我有一个辅助函数,它进行 API 调用并返回一个items
. 这些项目中的每一个都代表一个实体,比如说一个User
.
每个用户都有一个category_id
默认为空的属性。我想从另一个辅助函数的结果中为每个用户填充此属性,该辅助函数接受用户 ID 并返回 Category 对象的 Observable,我可以从中提取 ID,用作category_id
用户的属性。
我已经达到了以下(伪)代码(TypeScript 语法,但该问题通常适用于 Observable 运算符):
自然,这不起作用,因为它将 Observable 运算符与数组函数 (forEach) 混合在一起。
rxjs - Rxjs 类似 zip 的运算符,仅在 observable 以特定顺序触发时返回
假设我有两个 Observable A 和 B,我想将它们组合起来以产生这种行为:订阅组合仅在 A 被触发且 B 已经被触发时才返回。它与 zip 不同,因为如果 A 已经被解雇然后 B 被解雇,我不希望有任何回报。换句话说:忽略A直到B触发然后返回下一个A,然后忽略任何其他A直到B触发......等等
angular - 使用ngrx在一个@Effect中构建多个HTTP调用的最简洁方法是什么
我正在使用 ngrx 并将 @Effect 连接到 LOAD_CONTRACT 操作,然后进行 3 次 HTTP 调用以获取数据。私有变量用于存储来自每个 GET 的数据,以便最后可以使用包含 3 个检索到的对象的有效负载调用 LoadContractSuccessAction。
我下面的代码运行良好,错误处理也运行良好......但我觉得可能有一种更简洁或更好的方式来构建事物。
我不知道是否所有的嵌套都是必要的,或者事情是否可以以某种方式变平。我也不确定使用 switchMap 是否是最好的运算符。
对ngrx最佳实践有更好了解的人可以评论如何改进/简化以下内容......?
typescript - 将 combineAll 与 2 个可观察对象一起使用时 RxJS 缺失值
我正在尝试为板球比赛模拟生成overs,其值如下:
Overs -> 0 - 19(共 20 个)
Balls -> 1 - 6(共 120 个,每个 Over 有 6 个球)
因此,必须生成的序列将类似于0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 1.1, 1.2, 1.3, ....., 19.4, 19.5, 19.6
我可以通过使用 2 个嵌套循环进行迭代来轻松实现这一点,但由于我在 RxJS 中使用了 angular,所以我想以反应方式来实现这一点。我想出了以下代码,它应该适用于 AFAIK:
但问题是,它缺少很多价值。我得到以下输出:
正如人们所观察到的,所有的都生成了(0-19),但我们只得到.6
了每个的值。只有最后一个,即19th
具有唯一值19.1, 19.2...
我在这段代码中缺少什么?
此外,如果您想在浏览器中尝试并试验它,请参考上述代码的 repl:https ://repl.it/@ishankhare07/cricket-overs