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

0 投票
1 回答
69 浏览

rxjs - RXJS 嵌套依赖订阅

我正在尝试使用 Observables 来解决问题。但我在挣扎。我已经用谷歌搜索了一段时间,但我无法确定我看到的示例是否符合我的尝试。

我会尝试解释它,所以也许有人可以向我解释。

我有这个 http 端点,我向它发布了一个 JSON 对象。后端存储它,并返回带有 id 的持久对象。然后根据我在这里得到的响应,我需要通过调用第二个 http 端点来更新对象。

假设 service1 是帖子或创建对象,而 service2 是用于更新它。然后我会做以下事情:

我很确定这可以做我想做的事情,但是我在某处读到过在另一个订阅中进行订阅不是这样做的方法。

所以我的问题是.. 在这里做什么,如果我不能这样做?

这很难缠住我的头..

提前致谢!

0 投票
1 回答
76 浏览

angular - Rxjs 可观察问题

我已经声明了一个服务中的主题,并尝试通过使用“subject.next()”对后端进行 GET 调用来推送响应。还使用“subject.asObservable()”为该主题分配了一个可观察对象并订阅两个不同组件(父级和路由器出口子级)中的 observable。问题是 observable 只为一个订阅者而不是为两个订阅者发出新值。

服务

父组件

路由器出口子组件

在组件中,hitUrl() 也会在执行调用操作时触发,然后我需要 observable 向两个订阅者发出最新数据(如果调用操作是从父级或路由器出口子级执行的)。

0 投票
1 回答
189 浏览

javascript - 如何从动态创建的输入中更新总和?

我有多个动态创建的输入(可以添加或删除输入)。和一个显示输入总和的文本字段。如何动态附加 observable 以及我的文本如何订阅所有这些?

因为我无法弄清楚如何创建和附加可观察对象到字段或如何使用它们的 id 访问它们。我没有太多代码要发布!任何输入?

函数具有循环并返回可观察对象列表

可以创建或删除输入,并相应地更新总和

0 投票
1 回答
382 浏览

javascript - 如何使用 reduce、pipe 和 combinelatest 求和?

值是输入字段上的 obervables 列表

如何在文本字段中找到值的总和。

拥有订阅者会给我表单的输出

总和:(2) ["1", "2"]

管道连接 combineLatest 给了我 NaN

0 投票
1 回答
46 浏览

rxjs - 将旧的 RxJS 代码转换为 v6:merge、filter、timer、map、first、toPromise()

我试图将此代码更新到版本 6,但我无法弄清楚如何从阅读和玩耍中重新设计流程, map, first, toPromise() 曾经可以工作。任何 RxJS 人能够教育我或指出我正确的方向?

0 投票
2 回答
109 浏览

angular - Angular 8订阅未从服务获取返回数据

在将 ID 传递给服务并获取数据后,我想将数据修补到我的表单中,SERVER但我没有得到任何数据。这是我的代码

我的代码service.ts

我也在服务器上获取数据但没有获取subscribe((data: any))

0 投票
1 回答
186 浏览

typescript - Rxjs:fromPromise 和 toPromise 操作是否昂贵?

fromPromise在我的 TypeScript 应用程序中,我已经达到了我有一个内部执行多个操作的方法的地步toPromise

还有someMethod1andsomeMethod2内部使用toPromiseand fromPromise

我明白,如果我这样说,它看起来很乱。然而,原因是在每个服务中都有一个干净的 API(例如,我主要使用someMethod1andsomeMethod2作为 Promise 的结果,所以我将它们的内部 observable 转换为 Promise 并像这样公开它)。

我当然可以重构整个事情,让我的服务公开更多方法,这样我就可以调用一个方法,直接返回一个 Observable 而不是 Promise。

我的问题是:我需要这样的重构吗?

换句话说:目前我的服务的 API 非常干净,它们只暴露 Promises。但我确实必须使用 rxjs 操作符,fromPromise并且toPromise每当我想从 rxjs 操作符中受益时。所以我想保持目前的状态,除非这些操作很昂贵(就性能而言)。

0 投票
1 回答
86 浏览

javascript - 为什么在使用 combineLatest 时不会在内部 observable 上调用运算符(点击、地图)?

为什么不调用内部可观察的运算符tap和?应该订阅它进入的可观察对象,对吗?为什么这个订阅不会触发那些运营商?mapcombineLatestobsArr

工作堆栈闪电战: https ://rxjs-y2h4rn.stackblitz.io

感谢您的解释!

0 投票
2 回答
666 浏览

angular - Rxjs如何缓存给定参数的可观察结果?

在我的应用程序中,我使用 rxjs,并且我有一个如下所示的方法:

我的query方法 interlly 调用dbQuery查询一个 sqlite 数据库。

此外,该query方法在我的应用程序中被多次调用。所以我想queryString在相同的时候全局缓存结果。

换句话说,我希望该query方法通过返回先前缓存的值来避免在使用之前已调用dbQuery的参数调用时再次调用。queryString

不确定这是否相关:我的query方法存在于 Angular 单例服务中。

0 投票
1 回答
1054 浏览

javascript - Observable.subscribe() 在 IE 中无法在 Angular 7 中更改组件

我有两个 HTML 按钮“上一个”和“下一个”。我使用这些按钮导航到不同的选项卡(组件)。该代码在 Chrome 和 Firefox 中按预期工作,但在 IE 或 Edge 中单击下一个和上一个按钮时会出现空白屏幕。

“下一步”按钮事件处理程序:

模板

组件.ts