【发布时间】:2020-04-06 10:24:39
【问题描述】:
我有一个场景,我有一台父计算机和几台可以从父计算机生成的子计算机。
当前设置如下所示:
const parentMachine = Machine({
context: {
children: [] //can contain any number of child services
},
...
on: {
ADD_CHILD: {
actions: assign({
children: (ctx, e) => {
return [
...ctx.children,
{
ref: spawn(childMachine)
},
];
},
}),
},
UPDATE_CHILDREN: {
actions: ??? //need to somehow loop through children and send the UPDATE event to each service
}
}
});
当父机器收到“UPDATE_CHILDREN”事件时,我想更新每个子服务。我知道您可以通过将数组传递给send 来发送批处理事件,但我希望每个事件也可以发送到不同的服务。我只看到一次将它们发送到单个服务的示例。我已经尝试了几件事,包括以下内容:
UPDATE_CHILDREN: {
actions: ctx => ctx.children.forEach(c => send("UPDATE", { to: () => c.ref }) //doesn't send
}
我是否遗漏了一些明显的东西?这可能吗?
【问题讨论】:
-
你试过吗:
actions: ctx => ctx.children.forEach(c => c.send("UPDATE"))
标签: javascript xstate