问题标签 [ngrx-effects]

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 投票
3 回答
1669 浏览

angular - Dispatch multiply actions in order in effect - ngrx

I'm wondering how I dispatch multiply actions in order in my effect.

In the above example the first action is not dispatched. The getClients() method and last action are working correctly.

0 投票
1 回答
1093 浏览

angular - 如何使用我的第一个自定义运算符正确扩展 rxjs/Observable

我试图在我的服务调用中使用重试模式(实际上是:ngrx/store 中的@Effects)并增加延迟间隔。由于我设法为一个调用提供了一个工作代码(即使它看起来没有优化我不想在我的问题中关注这个),我现在想将它提取到一个自定义的 Observable 运算符中,并重复使用它在我所有的服务电话中。

对于如何为新运算符设计 API/用法以及如何使其被 TypeScript 识别,我一无所知。

下面的代码肯定行不通,因为它可能会积累大量问题。

所以,现在我有一个呼叫/效果如下:

而我所追求的是能够在其他效果中重用重试部分,并且具有类似于以下的模式:

为简单起见,我们可以假设延迟回调模式 ( i * 1000) 对于整个应用程序是恒定的。

下面的代码是我的尝试,但它显然不起作用。

  1. 我不确定如何为 new 运算符设计 API,什么语法最适合这里。
  2. 我不知道如何正确声明 new 运算符和 Observable 命名空间或模块,以便 TypeScript 识别新内容。

更新的服务电话:

0 投票
1 回答
1619 浏览

angular - ngrx - 处理减速器和效果中的错误

尝试使用带有效果模块的ngrx。我正在调度一个动作,通过一个效果做一些异步的事情,然后我正在调度一个新的动作来更新状态,然后重定向。这是我正在做的事情的精简版:

这一切都很好 - 当我调度一个start动作时,这个效果会启动,调度一个finish动作,然后重定向回根目录(通过go@ngrx/router-store.

我如何处理失败的事情finishAction?目前我在控制台中遇到错误,然后go无论如何都运行。

理想情况下,我想拦截这个失败,并调度另一个动作(所以我可以显示一个模式或其他东西,但不做重定向)

0 投票
1 回答
2640 浏览

rxjs - 在多个服务调用上使用 combineLatest 时处理错误

使用以下代码(取自ngrx/store中的@Effect())

捕捉错误的最简洁但正确的模式是什么?.catch 应该跟随每个getData*电话吗?我们不想.catch()在主@Effect()链的末端,对吗?

这个问题类似于这个问题,但有点不同,因为我没有在.subscribe()这里打电话。

0 投票
1 回答
171 浏览

rxjs - 如何使用@ngrx DB 将单个项目保存在集合中

我有以下@ngrx效果,当搜索完成时触发。该SEARCH_COMPLETE事件发出产品集合

我想将集合中的每个产品保存到 IndexedDB,而不是将整个集合保存为单个值。为了实现这一点,我Observable从使用@ngrxDB observable 的产品中创建了一个新的。我不得不使用subscribe调用来使其工作。

我的问题是,这是正确的做法吗?还是不使用该方法的更好subscribe方法?

0 投票
1 回答
3150 浏览

angular - Ngrx 一次多次分派一个动作

我的应用有 3 个下载按钮 每个按钮单击都会调度DownloadFileAction(payload=fileId) 一个 Effect 将继续监听 Download_File_Action 类型

})

如果同时点击了 1 个以上的按钮,则会分派 2 个 DownloadFileAction 动作

但是,download_attachment$ effect 只监听一个先下载的,然后返回 DownloadAttachmentSuccessAction,所以其他的下载文件不会完成

有什么解决方案或解决方法吗?非常感谢您的想法

0 投票
1 回答
97 浏览

ngrx - 如何根据数据的返回类型分支 ngrx 效果链?

我需要根据某些操作的返回值有条件地分支来执行不同的操作,但我需要将结果存储在相同的 results$ 中(上面的代码会通过错误,因为 results$ 被声明了两次,请提出正确的方法来实现这一点)

不能回答我的问题,因为它基于 Action 进行分支,我的情况是相同的 Action_X 来启动链,但后续步骤需要根据返回的内容而有所不同

0 投票
1 回答
12668 浏览

angular - 为什么 ngrx / redux 效果必须返回动作?使用像 elm 这样的 noop 操作是否被认为是不好的做法?

我正在使用带有 Angular、ngrx/store 和 ngrx/effects 的 redux 风格的状态管理设计。每当我不从效果返回动作时,我都会收到错误消息:

我研究了这个问题,发现在 elm 架构中有一种叫做“noop”的动作,当你不想用你的效果链接另一个动作时,它什么都不做,你可以调用它。在我看来,到处都调用这个 noop 动作似乎非常重复。我想知道这是否是一个不好的做法。您是否有理由不能产生不返回动作的效果?效果的意图是否总是让一个动作触发另一个动作?我想知道我是否误解了如何使用效果。

谢谢!

0 投票
1 回答
1633 浏览

angular - 使用 ngrx-store / 效果填充下拉信息

我正在使用带有ngrx-store和ngrx-effects的angular 4。我有一个简单的表单来加载用户信息并让它与效果一起工作,然后调度 Load_User_success 操作来更新商店。

我有个问题。加载信息以填充表单具有的下拉列表并同时使用 ngrx 加载用户信息的最佳方式是什么?

0 投票
3 回答
3494 浏览

angular - 何时在 angular2 中使用 ngrx/effect

我有一个与 api 通信的 anuglar2 项目。最近决定整合ngrx/store来维护组件的状态,遵循dump-smart组件架构。但是在继续前进的同时,我读到了可以在 api 请求上使用的 ngrx/effect。

我的问题来了,我为什么要使用ngrx/effect库,而不是仅仅从我的容器组件调用我的服务中的相应函数来执行api请求并成功调度操作以将返回的值保存在我的商店中。