问题标签 [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.

0 投票
1 回答
306 浏览

rxjs - rxjs 5.5+ retryWhen not call source observable?

我觉得我在这里错过了一些非常简单的东西。我正在尝试为 fetch 创建一个简单的重试,但只有其中的代码retryWhen被执行。我正在使用 React,所以我没有this.http.get方便。也许这是一个问题from(/*promise*/)?我试图基于 这篇文章的重试逻辑。

这是我希望看到的:

相反,我得到:

所以它只是重复他 retryWhen 间隔中的代码,而不是重复原始的 fetchData 调用。我可能遗漏了一些对我的 RXJS 知识很重要的东西。

这是测试代码:

0 投票
4 回答
7540 浏览

angular - Angular 7 按日期排序 Observable.subscribe()?

尝试对返回的 Observable.subscribe() 数据数组进行排序... Angular 7 的新手。我对如何在这里使用 RXJS 方法、我需要在哪里导入什么以及如何对 Event 类型的数组进行排序感到困惑。

事件.ts

事件结果对象.ts

事件服务.ts:

事件列表.ts

0 投票
0 回答
116 浏览

rxjs - 无法使用输入流中的 distinctUntilChanged() 过滤唯一值

需要你的帮助。我是 Rxjs 世界的新手,正在尝试使用 distinctUntilChanged() 运算符来避免通过输入框从流中接收到重复值。但我看不出输出有什么不同。可能是我错过了 rxjs 文档的解释。下面是我试图演示此示例的 url。如果您能帮助我对我应该在代码中进行的一些解释和更改提供帮助,那就太好了。

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

}

0 投票
1 回答
123 浏览

angular - Angular/RxJS - 延迟流直到前一个流完成

我正在构建一个通知组件,它应该向用户显示通知。当一次创建多个通知时,它应该将它们排队。

现在它可以很好地显示第一个通知,但之后它会同时触发 2 个通知(请参见下面的当前输出)。它不会等待上一个通知显示然后在显示下一个通知之前再次隐藏。

通知.api.ts

通知.component.ts

app.component.ts

电流输出

期望的输出

我怎样才能解决这个问题?

0 投票
1 回答
10122 浏览

rxjs - Rxjs `distinctUntilChanged()` 似乎无法正常工作

在 rxjs 流中,我使用distinctUntilChangedlodashisEqual过滤掉重复值。但是,它似乎没有按预期工作。采取以下代码片段

在这个例子中,我希望函数const equal内部tap永远不会=== true. 我希望这distinctUntilChanged(isEqual)会过滤掉任何-->总是isEqual(cachedValue, val) === true意味着的值。const equal === false但是,控制台输出显示:

我是否误解了有关distinctUntilChanged()操作员如何工作的基本知识?我发布了一个简化的示例,因为实际的 rxjs 流非常复杂,但我不希望复杂性会在运算符中产生const equal任何=== false影响tap

我只是想了解发生了什么,所以任何信息都值得赞赏。谢谢!

更新

应该注意的是,如果我将代码更改为:

然后过滤按预期工作。我的印象distinctUntilChanged(isEqual)相当于:

我误会/误解了distinctUntilChanged运营商吗?

0 投票
2 回答
60 浏览

angular - Observable 在模板中具有 observable 成员

我有一个 Angular 7 模板,它提供了book$一个 observabletranslationsAsArray$作为成员的 observable:

编辑:外观book.translationsAsArray$如下(仅用于测试目的):

我遇到的问题translationsAsArray$是被反复重新订阅。

subscribe当我将解决方案更改为在组件打字稿中调用而不是async同时使用管道时,book$问题translationsAsArray$就解决了。

你知道原因吗?我的模板应该看起来不同吗?

0 投票
1 回答
254 浏览

rxjs - 可观察流,其值从其他“一次性”可观察对象中丰富

我有一个辅助函数,它进行 API 调用并返回一个items. 这些项目中的每一个都代表一个实体,比如说一个User.

每个用户都有一个category_id默认为空的属性。我想从另一个辅助函数的结果中为每个用户填充此属性,该辅助函数接受用户 ID 并返回 Category 对象的 Observable,我可以从中提取 ID,用作category_id用户的属性。

我已经达到了以下(伪)代码(TypeScript 语法,但该问题通常适用于 Observable 运算符):

自然,这不起作用,因为它将 Observable 运算符与数组函数 (forEach) 混合在一起。

0 投票
1 回答
302 浏览

rxjs - Rxjs 类似 zip 的运算符,仅在 observable 以特定顺序触发时返回

假设我有两个 Observable A 和 B,我想将它们组合起来以产生这种行为:订阅组合仅在 A 被触发且 B 已经被触发时才返回。它与 zip 不同,因为如果 A 已经被解雇然后 B 被解雇,我不希望有任何回报。换句话说:忽略A直到B触发然后返回下一个A,然后忽略任何其他A直到B触发......等等

0 投票
2 回答
45 浏览

angular - 使用ngrx在一个@Effect中构建多个HTTP调用的最简洁方法是什么

我正在使用 ngrx 并将 @Effect 连接到 LOAD_CONTRACT 操作,然后进行 3 次 HTTP 调用以获取数据。私有变量用于存储来自每个 GET 的数据,以便最后可以使用包含 3 个检索到的对象的有效负载调用 LoadContractSuccessAction。

我下面的代码运行良好,错误处理也运行良好......但我觉得可能有一种更简洁或更好的方式来构建事物。

我不知道是否所有的嵌套都是必​​要的,或者事情是否可以以某种方式变平。我也不确定使用 switchMap 是否是最好的运算符。

对ngrx最佳实践有更好了解的人可以评论如何改进/简化以下内容......?

0 投票
1 回答
112 浏览

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