问题标签 [switchmap]

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 投票
0 回答
2090 浏览

android - 在 ViewModel 中未调用 Transformations.switchMap 函数

我是来自 Repository 的观察者 LiveData 并转换为视图,这里没有在 ViewModel 中调用 Transformations.switchMap 函数。如果我使用 observeForEver 效果很好。

0 投票
1 回答
704 浏览

javascript - 使用 switchMap 发出一个热布尔可观察对象?

尝试创建isEmpty:Observable<boolean>一个Observable<boolean>使用switchMap. 这是我到目前为止所拥有的:

想法是商店可以打电话notifyOnEmpty.next(Object.values(this.entries))让订阅者知道商店是否是空的。

无论如何 switchMap 语句会导致错误:

[ts] '(entries: E[]) => boolean' 类型的参数不可分配给 '(value: E[], index: number) => ObservableInput' 类型的参数。类型 'boolean' 不可分配给类型 'ObservableInput'。(参数)条目:E[]

想法?

0 投票
0 回答
48 浏览

angular - rxjs:我怎样才能得知取消订阅 observable

我有一个 Angular 项目,通过在输入字段中输入来启动 HTTP 搜索。这就像网络上的示例一样,带有以下代码(简化):

这工作正常,但每次async$启动,计数器都会增加,当它完成时,计数器会再次减少。
因此,当订阅被取消订阅时switchMap,计数会增加但不会再次减少,因为从不调用成功或错误方法。

所以我的问题是:是否有可能注意到订阅的取消,以便我可以减少计数器?

将计数逻辑排除在外不是一种选择,async$因为该函数在其他地方使用。

0 投票
1 回答
264 浏览

angular - 在 subscribe 中调用 subscribe

有两个相互依赖的变量(颜色和图片)。取决于以下含义:当变量颜色的值为“蓝色”时,我想过滤所有具有蓝色等颜色的图片。可变图片是带有服务/后端调用的主题:

为此,我需要监听颜色变量的变化,然后调用上面的代码行。但这会导致服务的多次调用。

任何想法如何处理这个问题?

0 投票
0 回答
237 浏览

angular - Ngrx/ 影响在 SwitchMap 上传递空值

这段代码试图完成的任务是按顺序排列的

  1. 我试图听一个动作

  2. 获取该操作的有效负载

  3. 将该有效负载传递给数据库服务函数

  4. 将有效负载传递给成功的减速器操作

数据应该被保存到浏览器中的 Indexeddb,但一直给我一个错误,说它被提供了一个不正确的空值。

什么可能导致传递空值?

0 投票
1 回答
284 浏览

angular - switchMap Angular /

我将我的角度升级到 ng7。我正在做一个项目,我有 3 个 http 调用,它们相互依赖,所以我选择使用 switchMap。我的问题是,我之前编写 switchMap 的方式不起作用。这是我平时写的

}

下面的方法是我现在正在研究的方法。关于我应该如何使用 switchMap 的任何建议?

}

0 投票
2 回答
441 浏览

angular - 如何从返回 observable 的函数订阅 observable?

所以我有一个返回 observable 的 put 方法,在这个方法中我需要检查令牌是否有效,如果它无效,那么我需要调用另一个可以创建新刷新令牌的方法,我需要订阅到这个方法,这样我就可以更新本地刷新令牌的值,然后返回 put 方法的可观察对象。

这是我到目前为止所拥有的:

AuthService 方法:

请注意,我尝试了 SwitchMap 和 MergeMap,但我收到会话已过期的服务器错误。似乎我在等待生成新令牌之前收到此错误。如何确保在调用 httpClient.put 之前创建了新令牌?

0 投票
1 回答
29 浏览

arrays - 试图弄清楚如何将组织切换到 Angular 组件中的基础

所以我有一个 API,我试图从中使用数据。正在重新调整的数据:

组织

根据

我想做但无法理解的是使用 rxjs 操作在需要的地方插入组织。因此,如果一个基地有一个或多个组织,则应将其插入基地。这是我的界面:

基础接口

组织界面

我发现这个JSBin看起来像是在做我需要完成的事情。由于我对这个主题缺乏理解,我无法让它发挥作用。这是我的 Angular 组件的片段:

任何有关此事的帮助将不胜感激。

干杯,

教练

0 投票
1 回答
861 浏览

android - 如何修复“必需的 MutableLiveData但“SwitchMap”被推断为 LiveData" 使用 Transformations.switchMap 时?

我正在尝试将 ViewModel 与一些使用来自另一个 LiveData 的值的 LiveData 一起使用。

为此,我正在尝试使用Transformations.switchMap,但我得到了

不兼容的类型。必需的 MutableLiveData 但“switchMap”被推断为 LiveData:不存在类型变量 Y 的实例,因此 LiveData 符合 MutableLiveData

我已经尝试切换到Transformations.map,但结果相同。

我希望 userId 依赖于 userLiveData 的值,但我做不到。

0 投票
1 回答
1155 浏览

rxjs - 如何知道 switchMap 是否取消了内部 Observable 的订阅?

如果有新项目进入switchMap,可能会切断(取消订阅)内部 Observable,因此我们期望以下内容:

导致seen

问题是,有没有办法通知第 1 项已取消?原因是,如果取消过于频繁,我想知道。

我已经尝试过修改内部 Observables 的方法,但基本上我尝试在它们“最后”做的任何事情在取消订阅时都不会发生。观察者规范有nextcompletederror,但没有“提前结束”,所以我不确定该尝试什么。

我希望能够向 switchMap 传递一个附加函数,当内部可观察对象被取消并提供参数时,该函数将由操作员调用。