angular - 一次处理多个观察者的角度
问题描述
我是 Angular 的新手,我正在开发一个执行以下操作的项目:
- 读取文件并将数据保存在数组中。
- 对于数组中的每个元素,它将连接到数据库并检查这些元素的信息。
- 对于那些存在于数据库中的元素,它们的信息将被写入文件。
如上所述,我有三个需要使用观察者的异步调用。问题是我不知道如何将数据从一个观察者提供给另一个观察者以及如何处理这个问题。我尝试使用回调,但它返回它为多次调用和多次返回创建了更多问题。谁能告诉我如何处理这种情况?!
解决方案
你需要链接你的 observables,像这样:
this.readFileObservable.pipe(
map(fileData => this.convertToArray(fileData)),
switchMap(array => {
const observables = array.map(element => this.createDBCallObservable(element));
return merge(...observables);
}),
filter(singleResult => !!singleResult),
).subscribe(singleResult => {
this.writeToAFile(singleResult);
});
在 Stackblitz 上查看此操作: https ://stackblitz.com/edit/angular-6zfwdo
请记住,这是一个盲目的回复,可能还有更多的情况需要处理,比如错误处理(我只是跳过上面带有过滤器的空结果)。你真的应该阅读更多关于 RxJs 操作符的内容,一旦你了解它,它就是一个非常强大的工具。
推荐阅读
- symfony - VichUploaderBundle 和 Symfony:从 JPG 获取 exif
- css - 多个嵌套的flex:不能限制高度
- java - 如何添加 5x5 矩形表格
- r - 有没有办法在 ggarrange 中包装情节标题?
- python - Matplotlib pyplot 冻结,除了 Spyder 上的白屏外不显示任何内容
- python - 使用 elasticsearch_dsl 使用“must_not exists”
- autohotkey - 宏代码无缘无故地向下和向上发送意外的 shift 键
- python - Pygame - 画线。双摆的跟踪路径被摆本身绘制 - 我该如何防止这种情况?
- python - 序列化模型以在 Django 中与 Chart.js 一起使用
- javascript - 将同一数组中的对象合并为两个具有不同键的对象