问题标签 [rxjs6]
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.
typescript - 在 RxJS 6 中为 Single、Maybe 和 Completable 创建类
创建自己的 Observable 扩展类是一个好习惯吗?我想实现我自己的 Single 和 Completable 类,以便知道数据的数量或不存在,并且 observable 可以返回,我希望它作为一个类,因为我使用reclect-metadata
并且我design:returntype
在我的装饰器中使用,所以我需要一个类而不是别名(因为使用别名返回的类型将始终是 Object 而不是原始类构造函数)。
想法是:对于 Single observables 使用单个运算符,对于 Completable observables 使用 ignoreElements 运算符,但在 Typescript for Singles 中没有类我不知道数据量仅通过读取代码 Observable,observable 可以返回一个或很多或没有,我想要一个针对特定情况的单曲,这就是我想要的:
对我来说,这更具可读性(因为我在我的 Android 项目中使用 RxJava 2)并且我知道期望与否,没有我需要做的:
这对我的眼睛不好,你知道吗?所以我想创建这些类以便更好地阅读我的代码和更好的实现。
angular - 我如何使用 catchError() 并且仍然返回带有 rxJs 6.0 的类型化 Observable?
cd所以我正在尝试将我的一些 Angular 5 代码迁移到 6,并且我了解 rxjs 使用 .pipe() 运算符工作所需的大部分更改。它可以像您期望的“pipable”操作一样工作。
但是, 的行为与操作员catchError()
不同.catch()
。在 rxjs 6 之前,我使用.catch()
运算符将错误输入转换为一致的错误对象,然后可以在 `.subscribe() 中捕获该对象。
new ErrorInfo().parseObservableResponseError
是将错误对象作为输入并将输入错误解析为具有规范化对象的更简单错误对象的函数。抓住回报Observable<any>
:
这对于轻松处理 rxjs5 上的错误非常有用 - 错误基本上被捕获为管道的一部分,然后抛出一个众所周知的错误结构,可以捕获.subscribe()
错误函数。
然而,将相同的代码移动到 rxjs 6 并使用.pipe()
我正在尝试执行以下操作:
但是这不起作用,因为 catchError 现在将结果返回Observable<any>
到管道中,这不是我想要的。本质上,我只想像以前一样重新抛出任何错误。
错误 TS2322:类型 'Observable<{} | 专辑 []>' 不可分配给类型 'Observable'
如何模拟旧的操作员.catch()
行为?
更新:
在对此进行了更多处理之后,显示的代码刚刚开始工作,而没有给我一个构建错误。老实说,我不知道为什么它之前失败并显示错误消息,但现在正在工作。@cartant 在评论中的建议是一种明确的方式来指定结果,并且效果也很好。
angular6 - rxjs 6“跳过”运算符丢失
我已经升级到 Angular/Rxjs 6,我注意到 Observable 上的“跳过”运算符不再存在。我一直找不到合适的替代品,有人有什么建议吗?谢谢!
typescript - 你如何对 Observable 进行排序- 在 Angular 6 和 rxjs 6 中?
我只想对我的类类型“类别”的可观察数据进行排序。所以 Observable < Category[] > 我想排序。
所以我用它升级到了 Angular6 和 rxjs6。我知道的一个可能很简单的 Typescript 问题是我如何进行“排序”操作,例如:
在新的 Angular6 内部?我曾经在 5
它工作得很好。现在在 Angular 希望你使用的 HttpCLIENTModule 和 HttpClient 中它更简单了:
我只是将魔术 <(object)> 放在我的端点之前,它为我做了。凉爽的。但是我没有看到您如何轻松地进入对象内部以使用 Source、Pipe、from、of 对其进行排序。我知道这可能很简单,我只是不知道它的语法。
rxjs - combineLatest 已弃用,取而代之的是静态 combineLatest
运行 rxjs 迁移工具后使用
rxjs-5-to-6-migrate -p src/tsconfig.app.json
我现在收到一个 linting 错误:
不推荐使用 combineLatest:不推荐使用静态 combineLatest。
这是我在运行迁移命令之前的代码:
运行迁移命令后我的代码:(当前出现 linting 错误)
这个问题是在这个stackoverflow问题中提出的,但它不够具体:Angular 6 ng lint duplicate errors and warnings, combineLatest is deprecated 。
angular - Angular/RxJs 6 - 组合路由参数和查询参数不再起作用
我已经花了至少 2 个小时试图让版本 6 工作,但无济于事。我只是无法同时获得路由参数和查询参数。
这是最接近旧版本的语法,但它只记录查询参数。
我想要做的是将其包装在全局路由服务中,以便方法调用是干净的,如果发生任何其他更新,我可以在一个地方进行更改。
我还注意到由于某种原因,combinedLatest 不在“rxjs/operators”中。Observable.combineLatest 也不起作用。
谢谢。
rxjs - 如何通过 catchError() 正确传播错误?
我写了一个pipe
-able 函数:
我可以在我的HttpService
:
它工作得很好。当我订阅 时checkExist()
,我会收到一条很好的错误消息,因为HandleHttpBasicError
首先捕获一个错误并将其抛出到服务的catchError()
,它会抛出错误消息,因为它不是null
。
这样,它允许我拥有一个全局catchError()
变量来处理始终相同的错误消息。将来,我会在 a 中进行HttpHandler
,但这不是重点。
throw
可以用关键字链接错误吗?
我试图返回Observable.throwError()
,但浏览器说
Observable.throwError 不是函数
我的进口是import {Observable, of, throwError} from 'rxjs';
.
这样做不是更好吗:
?
angular - RXJS6 升级:ErrorObservable 没有导出的成员 'ErrorObservable'
我已将 Angular 5 应用程序升级到 6.0.1,将 RxJs 升级到 6.1.0。
在我的一项服务中,我有以下导入:
但是,我现在收到以下错误:
模块 '"...node_modules/rxjs/observable/ErrorObservable"' 没有导出的成员 'ErrorObservable'。
我已经在网上搜索了如何在 rxjs6 中导入这个或者如果名称
已经改变。
我将此作为升级过程的指南:
有谁知道如何解决这个导入?