如何从对象的命令或事件(例如usermanagement.user
)中获取另一个对象的状态(例如administration.regulation
)?场景:我在包含简单规则集的规则内部有配置文件,在用户做完某件事后,我想查看是否符合规则。我尝试在用户内部的命令和动作中执行此操作,并尝试在流中获取规则,但似乎无法完成。
答案 0 :(得分:1)
wolkenkit提供了从聚合的命令处理程序中访问其他聚合的选项。这是通过使用services完成的。
例如,命令处理程序通常如下所示:
const commands = {
doSomething (file, command) {
// ...
}
};
现在,通过使用服务,您可以像访问客户端一样访问app
对象本身。为此,请使用services
作为命令处理程序的第三个参数。然后,在命令处理程序内,您可以使用services.app
来读取其他聚合。请注意,您必须在此处使用await
关键字:
const commands = {
async doSomething (file, command, services) {
// ...
const otherAggregate = await services.app.someContext.someAggregate(id).read();
// ...
}
};
(可选)您可以使用对象分解并稍微简化代码:
const commands = {
async doSomething (file, command, { app }) {
// ...
const otherAggregate = await app.someContext.someAggregate(id).read();
// ...
}
};
您可以在documentation中找到所有与此相关的详细信息。
希望这会有所帮助