typescript - Observable 在 Lambda 中的处理方式是否与 Promise 不同?
问题描述
我们在我们的应用程序中使用 NestJS CQRS 包。这个包允许我们通过生成触发各种后台任务的 RxJS Observables 来创建“sagas”。
然而,我们注意到在 AWS Lambda 上运行应用程序时,该函数在后台任务完成之前完成。
Observable 在 Lambda 中的处理方式是否与 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)
);
}
解决方案
Observable
an和的 APIPromise
非常不同,我还没有找到任何支持Observable
在 AWS Lambda 函数中返回 an 的文档。
一些额外的想法:@nestjs/cqrs
Saga 的输出是命令的 Observable。模块订阅 Observable 并通过CommandBus
.
以我对 AWS Lambda 函数和@nestjs/cqrs
模块的理解,我不相信您能够从 a中返回 a Observable
,更不用说 a了。Promise
@Saga
推荐阅读
- okhttp - 在达到 keepAliveDurationNs 之前关闭连接
- nlp - 使用带有 SpaCy 的 TPus
- java - E/zzf:检索安全网令牌时出现问题:7:
- android-studio - 更新 Big Sur 11.3 后,Android 模拟器无法正常工作或显示
- android - Android 房间,映射到现有模型
- javascript - Javascript:更改第三个输入值时的金额计算
- java - Jacoco 覆盖率专家
- php - Swagger PHP & OA3 - 如何隐藏一些 endoint/控制器 (zircote/swagger-php)
- ruby-on-rails - 如何更换密码
- mootools - 当前 1.6.0 版本的 MooTools 是否与旧版本兼容?