问题标签 [rxjs-observables]
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 链中运行一些代码
我试图找到一种仅在给定的 rxjs 链中没有错误的情况下运行某些代码的方法。考虑以下问题,NO_ERROR_OCCURED_RUN_HAPPY_PATH_CODE
rxjs 中是否有类似人工运算符的东西?
angular - RXJS/Angular 替换 Observable
在角度拦截器中,我想检查是否存在身份验证令牌。如果不是,则应刷新并重新发送请求。
问题是我不知道如何将 next.handle() 返回的原始 Observable 替换为新的。之前的 return 语句this.userService.refreshLoginToken().subscribe()
返回一个 Subscription 对象。如果我只是通过管道传输它的结果refreshLoginToken()
将不起作用,因为 refreshLoginToken 发送一个 httprequest,该请求仅在有订阅时执行。
将问题简化为一行:如何将第 1 行中由 next.handle() 返回的 Observable 替换为由返回的 Observable this.intercept(req, next)
?
谢谢!
javascript - 使用 http 客户端从服务器获取值并将其用于后续步骤
我有一个如下函数,我需要调用服务器并获取函数返回的值。我正在使用 rxjs 订阅。我得到了值,但由于 rxjs 是异步的,因此函数在从服务器获取值之前返回。下面是一个伪代码来解释我想要做什么:
我知道 susbscribe 会立即返回,因此函数 getValue 不会从服务器返回值。有没有一种方法可以使函数仅在可观察返回时才返回值?
rxjs6 - 我如何使用 rxjs 忽略第二个、第三个按钮单击,直到我的第一个按钮单击过程完成
我的 HTML 有以下代码:
在我的 ts 文件中,我有以下内容:
当我单击该按钮两次时,会进行两次服务调用。我不希望这种情况发生。相反,应忽略后续点击。
我怎样才能做到这一点?
rxjs - 当您订阅 rxjs 时,如果测试失败,您如何向测试发出信号?
我是一个完整的初学者。我遇到的问题是,一旦我在 rxjs observable 中抛出错误,我的测试就不知道了。当我订阅测试时,它在 rxjs 中失败了,它只会抛出一个错误,我需要通知我的测试发生了错误。这是一个更简单的示例,它表明从未打印过“测试失败”。
有没有办法处理这个?我很感激任何帮助。
arrays - 如何使用 RxJs 将两个数组组合成一个数组,其中第二个数组的每个元素将分配给每个对象属性的第一个数组?
我有两个接口,分别是 Team 和 Company
这是样本数据:
所以我想根据companyId将company作为财产分配给每个团队。像这样:
那么如何使用 RxJs 实现这一点。我有两个分别返回 Team[] 和 Company[] 的 Observable 的 observable。
那么,如何做到这一点?我知道它可以以命令式的方式完成(通过使用循环、if-else 等),但我想通过只使用反应式运算符、观察者来以反应式的方式做到这一点。
angular - 如何完成 rxjs switchmap observable?
我在我的 Angular 8 项目中有一个 observable,并订阅了 ngOnInit()。
但是 complate 方法不会触发订阅。
我订阅的chartData
类型是BehaviourSubject
. 所以我不订阅urlSubject
。因为 url 可能随时更改搜索或过滤参数。
我正在使用finilize,但它不起作用。我认为这个问题与 switchmap 内部孔隙有关。如何完成并将加载设置为 false?
angular - Angular8 中的行为主体和可观察对象
我得到了 3 次调用的休息服务数据调用。我需要创建一个数据服务来减少一次调用,以便它保留一个本地副本。如果尚未填充副本,它会点击 api 来获取它们。它应该只执行一次。因此,需要一个指示 get 调用状态的布尔值。如果尚未调用获取数据,请切换布尔值并获取数据。我知道如果组件订阅 observable 可以做到这一点,并且当数据服务有数据时,它将通过 BehaviorSubject 提供它。但是不确定如何实现它,因为我没有使用可观察对象和行为主题。对此的任何指导表示赞赏。谢谢。
这是我的示例 stackblitz https://stackblitz.com/edit/angular-sqxp9e?file=src%2Fapp%2Fnotifications-data.service.ts