【发布时间】:2019-11-19 20:18:41
【问题描述】:
我们在我们的应用程序中使用 NestJS CQRS 包。这个包允许我们通过生成触发各种后台任务的 RxJS Observables 来创建“sagas”。
然而,我们注意到在 AWS Lambda 上运行应用程序时,该函数在后台任务完成之前完成。
在 Lambda 中对 Observable 的处理方式是否与 Promise 不同?
@Saga()
aggregateCreated = (events$: Observable<any>): Observable<AggregateCommand> => {
return events$.pipe(
ofType(AggregateCreatedEvent),
map(async (event: AggregateCreatedEvent) => {
const result = this.queueService.sendMessage(
"http://XXXXXXX", { test: "MessageContent });
await Promise.all([result]);
return;
}),
flatMap(c => c)
);
}
【问题讨论】:
-
您能否分享更多代码来帮助您的 lambda 在本地和在线运行?我知道您在不同的帖子中提到这在本地有效,但在部署时无效,这可能有助于我解决问题。
标签: typescript aws-lambda rxjs nestjs