如何在NGXS中获得异步操作的结果?

时间:2019-09-30 14:24:19

标签: ngxs

我想根据异步NGXS操作的结果执行操作。

在Angular前端应用中,我使用NGXS进行状态管理。其中一些操作涉及通过REST调用与后端对话。这些动作实现为asynchronous actions,而我的state classes中的reducer函数返回一个Observable。

我正在寻找一种获取后端调用结果的方法,以便能够执行某些操作。

我要实现的一个用例是导航到刚刚创建的对象:业务对象是在具有两个域属性的前端(角度)应用程序中创建的。它们在后端保持不变,因此创建了该对象的ID,并将其返回到前端,并合并到NGXS存储中。作为对此的直接响应,我想导航到新对象的详细视图。为此,我需要

  • (a)呼叫已成功返回的信息,以及
  • (b)来自后端的答案(在这种情况下为ID)。

另一个稍微复杂的用例是将多个标签分配给业务对象。标签本身就是实体,每个都有一个ID。在用户界面中,用户可以选择现有标签或添加新标签。无论哪种方式,都可以在用户界面的一个步骤中添加多个标签,这意味着我必须

  1. 为每个新标签调用后端以创建ID
  2. 在创建所有丢失的标签之后,使用标签ID列表更新业务对象

通常,前端中有一些用例取决于后端调用的结果,并且没有干净的方法可以在商店中找到此结果(尽管有)

我知道我可以订阅商店的调度方法返回的Observable(如asynchronous actions所示)。 我也知道action handlers。在这两种情况下,我都可以将代码附加到操作完成的事件上,但是没有一个选项使我能够获取后端调用的结果。在第一种情况下,Observable占据了整个商店,而在后一种情况下,我得到了原始的Action,不幸的是,该Action缺少了基本信息(ID)。

0 个答案:

没有答案