如何在NGXS中获得异步操作的结果?
我想根据异步NGXS操作的结果执行一个操作 在Angular前端应用程序中,我使用NGXS进行状态管理。有些操作涉及通过REST调用与后端对话。这些操作被实现为,我的代码中的reducer函数返回一个可观察的 我正在寻找的是一种方法,可以获得后端调用的结果,以便能够执行一些操作 我正在尝试实现的一个用例是导航到刚刚创建的对象:业务对象是在前端(Angular)应用程序中创建的,带有几个域属性。它们会在后端持久化,因此会创建此对象的ID并返回到前端,并合并到NGXS存储中。作为对此的直接响应,我想导航到新对象的详细视图。要做到这一点,我需要如何在NGXS中获得异步操作的结果?,ngxs,Ngxs,我想根据异步NGXS操作的结果执行一个操作 在Angular前端应用程序中,我使用NGXS进行状态管理。有些操作涉及通过REST调用与后端对话。这些操作被实现为,我的代码中的reducer函数返回一个可观察的 我正在寻找的是一种方法,可以获得后端调用的结果,以便能够执行一些操作 我正在尝试实现的一个用例是导航到刚刚创建的对象:业务对象是在前端(Angular)应用程序中创建的,带有几个域属性。它们会在后端持久化,因此会创建此对象的ID并返回到前端,并合并到NGXS存储中。作为对此的直接响应,我想
- (a) 已成功返回呼叫的信息,以及
- (b) 来自后端的答案(本例中为ID)
我也知道。在这两种情况下,我都可以将代码附加到操作完成的事件,但这两个选项都不允许我获得后端调用的结果。在第一种情况下,Observable承载了整个存储,而在后一种情况下,我得到了原始操作,不幸的是它缺少了基本信息(ID)。Dude,你必须仔细阅读文档。简而言之,答案是
分派返回的可观察状态具有void类型,这是因为可以有多个状态侦听同一@Action,因此实际上不可能从这些操作返回状态,因为我们不知道它们的形式。
。为什么你需要一个行动的结果?您可以创建一个服务,在这里您可以返回一个可观察的和订阅的to@overthesanity“你可以创建一个服务,在那里你可以返回一个可观察的并订阅”-我看不出这对我有什么帮助。事实上,我已经在它自己的服务中实现了后端通信,方法返回正确的可观察值。但只要我使用异步操作来触发对该服务的调用,我就无法获得这些调用。至于dispatch method结果,我已经用ngxs 3.5.1检查了结果,它确实保存了整个存储,而不是void…>它确实保存了整个存储,而不是void
-您不应该依赖于此。它不是接口的显式部分,将在v4中更改。您应该将其视为返回void
,但只要我使用异步操作来触发对该服务的调用
-为什么需要操作来触发对该服务的调用?你不能直接做什么?>你不能直接做什么?也许这就是重点。我从docs()中获取了整个异步操作,到目前为止它是有意义的(将整个用户操作包装成一个ngxs操作),但在这种特殊情况下,以另一种方式进行可能是有意义的。如果我在启动某个操作之前进行了整个后端通信,那么我就已经准备好了所有的东西