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

angular - 使用 ngrx 嵌套 switchMaps 的潜在竞争条件

我有一个 Angular 9 应用程序,大部分情况下使用 observables。在一个组件中,我需要:

  1. 获取所有公司(因为它们包含我需要的某些信息)
  2. 然后获取所有响应并映射公司中的一些额外信息(即响应的公司名称)。
  3. 将该列表作为 observabe 返回,该列表使用异步管道在模板中订阅。

为此,我最初有以下代码(似乎有效):

首先,我不确定 switchMap 是否是正确的运营商,因为如果 companyFilesSelector 正在更新,然后responsesSelector 部分启动,那不会终止先前的订阅吗?

现在我还需要添加对我拥有的过滤器服务的订阅,因此我对 getAccessibleResponses 方法进行了以下更改(这似乎再次起作用,但我觉得它可能更多的是通过运气/良好的连接而不是任何东西别的):

我相当有信心这不是最好的,甚至不是正确的方法,但我有点迷茫,很难理解如何实现以下目标:

  1. 首先获取所有公司。
  2. 将可观察到的公司的结果与响应相结合。
  3. 当过滤器改变时(即过滤器服务 observable)过滤 1/2 的结果。

任何帮助或指导将不胜感激。

0 投票
1 回答
326 浏览

rxjs - 在 switchMap 中返回对象

我是 rjxs 编程的新手,所以想知道如何执行以下操作。

因此,在上面的代码中,from(fileRef.getDownloadURL())有一种方法可以创建一个像下面这样的对象,而返回将是下面对象的列表。

方法签名

0 投票
1 回答
429 浏览

angular - 角度输入搜索无法使用 switchmap,同时还尝试显示一些初始化数据

我使用带有 observable 的异步管道在 Angular 中实现了我的搜索。我将 observable 分配给使用 switchmap 完成的搜索 observable。但它不起作用!我认为这与一个分配覆盖另一个有关。但是我需要在开始搜索之前显示一些数据(反正谁不会。)我试图通过先分配数据然后搜索来反转它,但是没有显示任何数据,它只在我开始输入时才有效。

所以我的问题是如何修复它,以便我可以拥有搜索功能并在开始时仍然显示一些数据。使用异步管道而不订阅组件

以及使其更清晰的场景>在组件初始化时,我想向服务器发出请求并获取初始数据显示它。并且还通过向服务器发出另一个请求,将我相同的可观察对象“分配”给用户键入要搜索的条件的输入。

任何帮助表示赞赏

类似的问题,但没有具体的答案和不推荐使用的 rxjs 运算符

Angular2 - 在初始化时使用 Switchmap 从服务中获取数据

编辑为

0 投票
1 回答
360 浏览

ngxs - 在 switchMap 中调度 ngxs 操作忽略返回值

必须有一个标准的方法来解决这个问题,但我还没有找到任何东西。我可能没有正确表达我的搜索。

我有一个搜索输入字段,作为一种好的做法,switchmap当用户继续输入时,我使用运算符取消以前的 http 请求。

我以 ngxs 文档中的示例为基础:

SomeAction每次用户在输入字段中键入内容并保存在商店中时都会调度(这就是为什么SomeOtherAction没有构造函数参数)。

如果没有这个空的订阅块,有没有更好的方法来做到这一点?这看起来像一个反模式。

0 投票
1 回答
232 浏览

angular - 具有空值的 switchMap

我正在使用ng-select自定义服务器端搜索来根据用户类型加载数据。目前,它仅在实际按下关键字时才有效。我想在每次打开下拉菜单时触发 http 请求,即使搜索词为空

组件.html

组件.ts

我试图了解 switchMap() 如何仅在输入输入值后触发请求。每次调用 getFilterValues 方法时,如何让它触发服务的方法?

0 投票
2 回答
172 浏览

angular - Rxjs/Typescript:ExpressionChangedAfterItHasBeenCheckedError

我正在使用ng-select自定义服务器端搜索来加载数据,无论用户是否提供了搜索词。

组件.html

组件.ts

我注意到的问题是,每当我打开选择下拉菜单时,它都会触发控制台错误:

之后,如果提供了搜索词,则由 this.filterValuesLoading 触发的加载微调器可以正常工作。这里有什么问题?谢谢!

0 投票
1 回答
288 浏览

java - 从一个 LiveData 源链接多个 Transformations.switchMap

我正在为一个学校项目学习 Android,我们必须使用 Java,我们不能使用任何外部库。我正在创建一个大学生课程负载跟踪应用程序。目前,我正在开展一项活动,该活动将详细说明Course用户选择的信息。当用户选择 a 时,我需要能够获取多个数据库结果CourseMentor(Instructor)、a LiveData Listof Assessments 和 a LiveData Listof Notes。我目前有一个Transformations.switchMap设置并正在努力获得Course Mentor. 然而,它似乎LiveData只能有一个这种转换观察者。这是我的代码:

课程详情视图模型

然后我观察这些LiveData对象在我CourseDetailActivity的 UI 中填充:Mentor填充 a 集 a 的选择SpinnerList<Assessment>List<Note>传递到它们各自RecyclerView Adapter的 s 中。

我有一种感觉,我可以使用类似的东西,MediatorLiveData但是,我真的不完全理解如何正确使用它,即使在网上查看了许多资源之后。我是 Android 新手,这是我的第一个 Android 项目,所以我知道我有很多东西要学,而且我完全愿意接受对设计决策的批评。

非常感谢您的帮助!

0 投票
1 回答
17 浏览

angular - 如何使用不同的策略执行多个调用和订阅?

假设我有类似下面的代码

我需要一个很好的例子来说明如何进行多个服务调用,因此我希望进行更多调用和更多订阅操作,而不是从一个服务返回然后执行订阅。实际上,如果有不止一种方法,我想知道每一种可能的好方法......承诺,任何地图结构(ConcatMap?)。这里真的很欢迎例子

0 投票
0 回答
157 浏览

rxjs - 根据一些可观察值过滤 Angular 8 中的多个下拉值

我有以下表单控件(parent1、parent2、parent3),它们是复选框。当用户选中/取消选中其中任何一个时,以下表单数组由多个选择复选框组成,示例数据如下:

我正在尝试使用更高阶的 observables 来实现这一点:

非常感谢任何帮助和指导。提前非常感谢!

0 投票
2 回答
2198 浏览

rxjs - Angular 9/rxjs:如何处理 switchMap 中抛出的错误?

我正在使用 Angular (9) 驱动的 Bootstrap (6.1.0) TypeAhead 并定义它的搜索功能,如下所示:

该函数必须返回一个 Observable。如何捕获 switchMap 中抛出的错误?