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

angular - RxJs 循环遍历返回的数组

有没有更好的方法使用 RxJS 运算符循环从可观察对象返回的数组而不是发出新的单个列表项?

API 返回包含项目的单个数组,因此我无法使用 .map 访问 itemData.name

0 投票
1 回答
7703 浏览

angular - 如何在 Angular 6 中使用 take(1)?

有人可以说明 Angular 6 / rxjs 6 中 take(1) 的语法吗?

在下面的代码中,我从 Firestore 中检索了一个文档,然后将其作为 observable 提供。

然后我订阅那个 observable,读取文档的时间戳,并以人类可读的格式格式化年龄。这很好用,但是它不需要在每次文档流发生更改时都执行。它只需要执行一次,因为文档时间戳永远不会改变。

如何修改此代码以合并take(1),以便仅生成一次年龄字符串并且订阅items不保持打开状态?take(1)我在 Angular / rxjs 版本 6 下找不到任何明确的语法示例。我能找到的所有示例都是针对以前版本的。

0 投票
3 回答
2808 浏览

angular6 - RxJs 间隔与 takeUntil 发布最后一个值

我有一些代码可以轮询直到任务完成

见下文

我曾尝试使用 takeUntil 和 takeWhile,但问题是一旦任务完成,最后一个值就永远不会发布。

为了解决这个问题,我必须在 stopPoll 主题中包含 tap 方法,并增加 stopCount 以获取最后一个值。

所以上面的工作,但感觉有点乱,我敢肯定一定有更好的方法来实现这一点?

我本来希望 takeUntil 发布最后一个值或有一个覆盖告诉它,例如 takeUntil(observable, {publishLast: true})

顺便说一句更新,可观察到的订阅由 Angular 6 模板提前谢谢

0 投票
2 回答
260 浏览

angular - 将操作符修补为 pipable 操作符,角度 5 到 6

我正在从 angular 5 迁移到 6,但我无法弄清楚新的可管道运算符语法。

考虑我的 Angular 5 http 拦截器

这是我尝试将其转换为pipe方式

但是,这不会编译 - 与pipe函数有关的整个事情都带有以下错误的下划线。

0 投票
1 回答
79 浏览

angular - 寻找 RxJS 运算符

我正在使用 Angular 服务来允许用户上传文件。

该服务的实施正在运行;我的问题是关于 RxJS 及其可管道操作符,但这里是服务签名以防万一:

对该服务的调用如下:

如果不满足条件,我想找到一个运算符来代替unknownOperator它会引发错误。

我试过了

  • filter:如果条件不满足,代码在它之后停止,
  • map:即使抛出错误,代码也会继续throwError

我考虑过使用以下管道

我认为这可能可行,但我想(如果可能)找到一个缩短此管道的操作员。

可能吗 ?如果没有,有更好的管道吗?

0 投票
1 回答
1067 浏览

angular - 如何使用单个 Observable 发送多个 Http 请求

我正在尝试创建一个角度应用程序,该应用程序可以根据用户从下拉列表中选择的选项,使用 observables 发送多个 HTTP 请求。我在网上查了一下,但无法完全理解这些概念。我无法使用switchMap operator以实现我的目标。

任何人都可以看看并指出我的错误。

任何建议/帮助将不胜感激。

谢谢。

.component.ts 文件:

.http-service.ts 文件:

是我在控制台中遇到的错误。

0 投票
1 回答
731 浏览

angular - *ngIf async pipe angular 与另一个 observable 合并

请给我一些关于我的应用程序的解决方法的想法!我正在尝试在我的组件中动态切换模板但有奇怪的行为。谢谢!这是堆栈闪电战

我基本上想要什么:我想从我的警报组件中的服务接收异步数据(节点),并在我的#initTemplate 中显示此数据(节点),然后我想获取此数据(节点)的 id,用这个发送请求id 并获取我想在#stylesTemplate 中显示的另一个数据(样式)。这两个模板都在我的警报组件中。

我的问题是什么? 我意识到我的组件所需的行为,但这并不是我所需要的......我在做什么: 1. 单击“pushData”按钮 2.查看我的警报组件 3.单击更改模板按钮(!! 组件消失!!) 4. 再次点击“pushData” 5. 看看我的组件更改了模板

我需要在不消失的情况下切换组件的模板。

这是我的简化警报组件(另请参阅stackblitz工作示例)

这是我的两个模板的html:

谢谢 !!

0 投票
1 回答
158 浏览

rxjs - 可观察性以及如何控制结果速度

我正在寻找一个可以帮助我调整从 observable 发出的结果的运算符,它看起来像这样:

我尝试了 AuditTime() 但它不会重播间隔之间发出的结果,它会执行以下操作:

谢谢你的帮助。

0 投票
0 回答
2078 浏览

angular - rxjs 6 上的“do”运算符在哪里?

我们正在慢慢地从 angular 4 升级到 5 然后 6。所以我们升级了 rxjs。我曾经做过

在新的 rxjs 中,我找不到类似的 do 运算符:

什么是正确的方法?

0 投票
1 回答
392 浏览

angular6 - Angular6 无管道组合最新

我必须将 Angular5 代码升级到 Angular6,但我遇到了静态 combineLatest 的问题。

在这种情况下,combineLatest 是从 rxjs/operators 导入并返回一个 OperatorFunction,但静态的则返回一个 Observable。

如何在 angular6 中转换此代码?