问题标签 [saga]

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 回答
198 浏览

redux - redux-saga 是否在 redux 存储中存储任何状态?

我有兴趣了解更多关于 redux-saga 的信息,我很好奇它是否可以帮助解决我想解决的问题。通常,对于异步 API 调用,围绕正在运行的任务的状态有各种常见模式,例如它是否失败是否仍在运行是否成功完成。. 我一直在将这些作为分派的单独操作实现,但对于每个 API 调用,我发现我至少有 3 个相应的操作,我必须分别命名、管理和分派。为了缓解这种情况,我希望实现自己的抽象,但首先想验证 redux-saga 是否包含一些标准方法来跟踪 API 调用中的这些状态值,我可以使用这些方法而不是重新发明轮子。

也许还有其他库可能会有所帮助,但因为我对 redux-saga 感兴趣的其他原因,我主要想知道它是否提供了我所追求的东西。

0 投票
1 回答
585 浏览

dependency-injection - How do I perform constructor injection with an NServiceBus saga?

If I have a class HelperClass that I'd like to use within a saga, I'd like to be able to inject an IHelperClass into the constructor.

The problem I'm running into is that sagas appear to be instantiated with an empty constructor; so while I can create a constructor that takes IHelperClass and use it in unit tests, the framework will always call the parameterless constructor.

I think I could use property injection, but since this helper class is "necessary," my understanding is that property injection (assuming it would work) is not a best practice.

So how can I do this without taking a hard dependency on the concrete HelperClass implementation?

0 投票
1 回答
369 浏览

redux - redux-saga 一些快速触发的相同动作错过了

您好,我在其中一个 React 组件中有一个 onChange 回调,它通过这样的地图调用多次分派一个动作:

我有一个像这样的“项目”的传奇:

换句话说,我预计每当 ITEMS_UPDATE_START 操作被调度时,它会派生一个新的 updateItemDbCrud 并继续执行一些 API 工作,但我注意到只有调度序列中的第一个通过。我用错了叉子吗?

谢谢!

0 投票
2 回答
2763 浏览

masstransit - 如何在不使用 Guid 的情况下关联公共交通状态机中的事件?

我在 Masstransit 中定义了以下状态机:

如何将 OrderProvisoned 和 OrderInvoiced 事件关联到与初始 OrderCreated 事件相同的 OrderState 实例,而不在我的事件中发送 Guid 并且只使用 ordercode 属性来关联它们?如果我运行此示例,如果同时发送了 OrderProvisioned 和 OrderInvoiced,我永远不会收到 OrderFinished 事件,但是如果我将 Guid 添加到事件中并根据该 Guid 关联它们,它就会正确执行。

0 投票
1 回答
127 浏览

serialization - 为什么saga数据没有序列化到数据库

尝试保存我的 Sagadata 类时,属性已保存,但未序列化。

像这样:

我用数据填充 saga 中的 Data 对象。

这是保存到数据库中的数据:

Id 已正确保存。

如果我更改数据,通过更新数据库,属性将正确映射到数据对象中。

任何想法我做错了什么?

0 投票
1 回答
393 浏览

sql-server - Rebus Saga 多次触发 IAmInitiatedBy

我正在使用最新版本的 Rebus (0.99.35) 和 SimpleInjector (3.1.2)。在我的第一个示例项目中,我使用 SQL Server 进行传输和 Sagas。

问题是 Saga 方法Handle(StartTheSagaMessage message),实现IAmInitiatedBy<StartTheSagaMessage>,被调用了 5 次,我不明白为什么。此外,此方法会向自身发布一条总线从未接收到的消息。

以下是配置代码:

和传奇代码:

完整示例基于此处提供的解决方案

我做错了什么?

感谢帮助。

0 投票
0 回答
276 浏览

javascript - 如何等待 2 个动作并将它们的结果加入 redux-saga

在我的应用程序中,我想定义一个 saga,它将处理一个LEFT_CHANGED或多个RIGHT_CHANGED动作,并继续使用SOURCES_CHANGED由上述动作的有效负载组成的有效负载的新动作。

问题在于leftright变量是nullSOURCES_CHANGED发出动作并且不维护它们的值时(我相信由于迭代器的性质)。

有人可以帮忙吗?谢谢

0 投票
1 回答
109 浏览

unit-testing - 在 Rebus 中测试 Sagas

我正在尝试阅读这篇博客文章中的建议,以测试一些 sagas 行为。当我尝试使用时,问题就开始了FakeBus,因为它应该在Rebus.Testing命名空间中,但它似乎消失了。

错误在哪里?最近 Rebus 发生了很多变化,这是其中之一吗?

0 投票
1 回答
394 浏览

unit-testing - 在 rebus 和相关问题中对 Saga 处理程序进行单元测试

我在 Rebus 中有这个简单的 Saga:

并且感谢善良的 mookid8000,我可以使用 FakeBus 和 SagaFixture 测试传奇:

检查的第一个测试方法IAmInitiatedBy正确执行并且没有抛出错误,而第二个测试失败。它看起来像一个相关问题,因为fixture.Data不包含任何元素,并且fixture.LogEvents包含作为最后一个元素的此错误:找不到消息 Event2/b91d161b-eb1b-419d-9576-2c13cd9d9c51 的现有传奇数据

这个 GUID 是什么?与我在单元测试中定义的完全不同吗?有任何想法吗?我要测试的内容是否合法(因为我使用的是内存总线)?

0 投票
1 回答
1082 浏览

masstransit - 在 MassTransit 中未指定调度程序地址的 Saga 调度

我试图在 MassTransit 状态机传奇中使用调度程序而不直接指定调度程序服务地址。

UseMessageScheduler在总线配置中使用它,它工作正常,因为我可以context.Schedule从我的消费者内部进行。

但是,它在 sagas 中不起作用。当我尝试做时.Schedule,我收到此错误:

指定了请求超时,但没有指定或可用的消息调度程序

我检查了 MT 代码,我看到了这个:

那么,实际上有一个分支应该正常从配置中获取调度器地址,但是为什么不起作用呢?