我目前正在设置一个文章发布系统(以CQRS方式剪切),它可以侦听一篇文章是否已经准备好发布。这个故事是这样的:
@Injectable()
export class ArticleSaga {
@Saga()
articleRegister = (events$: Observable<any>): Observable<ICommand> => {
return events$
.pipe(
ofType(RegisterArticleEvent),
delay(1000),
map((event: {
uuid: string,
statut: string,
createBodyArticleDto: CreateBodyArticleDto,
}) => {
return new PublishArticleCommand(event.uuid, event.statut, event.createBodyArticleDto);
}),
);
}
}但是,当我创建一篇文章时,执行此操作的命令工作得很好,但是侦听此命令以启动发布命令的saga抛出了一个我不理解且不知道如何解决的错误。错误如下:
.../node_modules/rxjs/internal/util/hostReportError.js:4
setTimeout(function () { throw err; }, 0);
CommandHandlerNotFoundException {
message: 'CommandHandler not found exception!'
}处理程序PublishArticleHandler:
@CommandHandler(PublishArticleCommand)
export class PublishArticleHandler implements ICommandHandler<PublishArticleCommand> {
constructor(
private readonly publicRepository: PublicRepository,
) {}
async execute(command: PublishArticleCommand) {...}和PublishArticleCommand:
export class PublishArticleCommand implements ICommand {
constructor(
public readonly uuid: string,
public readonly statut: string,
public readonly createBodyArticleDto: CreateBodyArticleDto,
) {}
}如果有人理解这个问题并有解决方案,我将非常高兴地阅读它。;)
发布于 2019-10-15 18:07:49
我找到了出现这个错误的原因,PublishArticleHandler处理程序没有导入到模块中。
https://stackoverflow.com/questions/58391343
复制相似问题