问题标签 [rxjs-lettable-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 回答
409 浏览

angular - lettable 操作符和 observable 创建方法的导入

我正在升级到 Angular 5 和 RxJS 5.5.2 并尝试导入Observable.of运算符。

在 lettable 操作符之前,我们是这样做的:

add但是现在不鼓励从包含的路径导入。

那么现在导入和使用 lettable 静态运算符的正确方法是什么?

0 投票
1 回答
518 浏览

typescript - Observable.create 的 RxJS lettable 操作符

是否有用于Observable.create()导入 from的 lettable 运算符rxjs/Observable

我已经用从.import 的 lettable 运算符替换了Observable.of()也从.rxjs/Observableof()rxjs/observable/of

但是我找不到第一个问题的可出租运营商,有人可以帮忙吗?

编辑:不是重复的,这个问题是关于使用 Observable.create() 作为 lettable 运算符,而不是关于导入和使用 lettable 静态运算符作为 Observable.of()

0 投票
1 回答
25405 浏览

angular - 你是怎么用管子抓的?

如何使用 lettable 运算符和管道执行以下操作?

我已经尝试过了,但我无法开始catchError工作: catchError does not exist on type Observable<any>:

另外,我假设catch并且catchError是相同的,对吗?我像这样导入它:

import { map, catchError } from 'rxjs/operators';

但我不确定这是否是正确的运算符。

0 投票
1 回答
7367 浏览

angular - Rxjs 管道不适用于 Angular 的 Http.get()

我有一个调用服务来获取数据的 Angular 4 组件。不是最奇怪的情况。在我检索数据并需要对其进行转换和过滤之后。显然,如今做到这一点的方法是使用管道。

在我的组件中:

在我的服务中:

该服务导入以下内容:

调试时,代码永远不会出错,只是永远不会到达组件中的 console.log() 语句。如果我删除 .pipe() 并简单地返回 Observable 代码会记录我所期望的内容,而无需进行转换和过滤。

我对 Rxjs 和使用 Pipe 非常陌生。我显然不明白一些事情。

编辑添加信息:

我像这样把水龙头塞进管子里……

我不知道水龙头存在,但它很有用。前两个控制台日志给了我我所期望的。第三个,就在 filterShippingUnit 之后,不做任何事情。它根本不记录值。甚至不为空。

在 convertToJson console.log 吐出一个包含 28 个对象的数组之后。其中一个对象是:

我希望基于 filterShippingUnit 过滤器传递该对象。

0 投票
1 回答
1621 浏览

angular - 如何在 rxJS 中展平或合并数组

我有一个结构,我想将其展平为一个同质阵列。源数组如下所示:

我想将其转换为如下所示:

到目前为止,我有:

似乎应该有一种方法可以将属于每个国家的状态合并到生成的可观察数组中。我已经阅读了 concatMap、mergeMap 和 switchMap 文档,但我不太清楚如何将它们放在一起。

0 投票
1 回答
1025 浏览

javascript - 我将如何使用 `do` 作为 RxJS 的 lettable 运算符?

RxJS 5.5 允许获取 lettable 操作符并像这样管道化它们:

我将如何do在这些命令之间使用运算符?

0 投票
1 回答
705 浏览

rxjs - 创建 lettable rxjs "string.split" 运算符

我正在尝试对 in 进行一些string操作rjxs,虽然我可以string通过类和arrayin类的内置行为来完成它,Javascript但我想将此作为练习来了解rxjs和理解流利的代码流更好的。

为此,我必须找到一种适合解决方案的方法,而不是像我在大多数示例fluent中看到的一系列变量分配。rxjs

本质上,情况就是这样;我有一串文字;

我需要做的第一件事是使用string.split('\n')创建一个字符串数组,以便我可以遍历每一行并执行进一步的操作。

example.string.split('\n')确实给出了预期的结果,但是尝试将其发送到rxjs开始得到相当混合的收益。使用该pipe方法,我知道我将结果rxjs作为发送到Observable,但是我在掌握如何从那里真正处理它而不过度嵌套到map运算符中时遇到了非常麻烦的时间。

例如,如果我这样做...

可以开始了解我正在寻找的东西,但我真正想做的是......

阅读 上的文档lettable operators,看到这里,看起来这应该是一件很容易创建的事情。从理论上讲,它在我的脑海中应该是这样的;

所以这应该使整个代码足够明显;

但这并没有给我我真正的期望。我希望得到一条array线,但如果我输出它,我会得到......

[n]::, 键 || 值,键 || 值,键 || 值, ,
值, 值, , 值, 键 || 键[键1] = 值 | 键[键2] = 值,键 || 价值,

我真的不清楚我做错了什么,在这里。由于很难rxjs在大多数代码游乐场中进行演示,例如plunkror jsfiddle,至少据我所知,我已经准备了一个游乐场环境来演示我的工作stackblitz,如果它有帮助的话。

您将在playground/index.ts文件中找到所有相关代码。我已经尽我所能来抽象出对角度知识的需求因为我煞费苦心地指定了应该单独保留的部分,以使其继续在右侧显示输出。如果您不知道 angular,但可以提供帮助rxjs,那么您应该能够在不干扰该设置的情况下工作。

STACKBLITZ 游乐场

0 投票
1 回答
445 浏览

rxjs5 - 关于链式和可出租运算符

我不确定这是否是问这个问题的正确地方,或者 StackOverflow 可能最适合这个问题。所以我来了。

我对 rxjs 的介绍是通过优秀的Angular框架和贯穿每个教程,实际上是“导入你需要的任何东西add/operator,然后链接它。例如。

正如lettable 文档中所解释的那样,如果我没看错的话,不鼓励链接作为前进的方向,而管道是推荐的实现相同的实现应该写成如下

因为当我阅读源代码时,尤其是在https://github.com/ReactiveX/rxjs/blob/master/src/Rx.ts#L41之后,似乎链接是完全可以接受的,但是,有一个建议https:// github.com/ReactiveX/rxjs/issues/2913,它正在讨论添加rxjs/add/*为单独的包。

我的问题是,这种效果链在未来会如何?

0 投票
1 回答
1540 浏览

angular - rxjs 与管道运算符

我正在使用 Angular 和 rxjs 5.5,并且正在尝试让此代码与新的管道运算符一起使用。

所以基本上,等到用户被加载,然后做一些事情并终止 observable。它会是这样的:

但似乎 do 运算符不再在运算符列表中,那么我该如何实现呢?我不想使用 take(1) 或类似的。

谢谢!

0 投票
1 回答
1102 浏览

angular - Angular async *ngFor 在选择后不起作用

与角度和可观察量作斗争。

我有一个像这样的可观察的:

我用这样的称呼来填充它:

(注意:searchTerms 是Subject<string>()并且是在 html 上实现的,例如<input type="text" (keyup)="searchTerms.next($event)"/>:)

到目前为止一切正常,一切都按预期工作。

当我收到结果时,我会用一个简单的 UL 来展示它们

单击一个项目将调用selectItem在控制台上写入结果的函数并清除searchResults

再次,一切正常。

但是,如果我重复该过程以搜索其他关键字,*ngFor则不再显示结果。

为了完全安全,我订阅searchResults(例如:在构造函数中)来记录它

你猜怎么着?奇迹般有效

我想这是我不明白的角度(5+)行为。

提前致谢!