【发布时间】:2020-03-03 06:41:40
【问题描述】:
我在 Angular 8 中有以下代码:
fetchMedia() {
this.mediaDetails.forEach(entry => {
this.fetchSingleMedia(entry); // NEED TO MAKE THIS SEQUENTIAL
}
});
}
fetchSingleMedia(entry) {
this.mediaService.getMedia(entry).subscribe(
(data) => {
// MY LOGIC HERE
},
error => {}
);
}
fetchSingleMedia 方法也被代码的其他部分使用。我想将逻辑保留在 fetchSingleMedia 本身中
现在,如果我必须依次向fetchSingleMedia方法发出多个请求,我需要如何修改fetchSingleMedia方法和调用它的方式?也许使用 async/await/promise 或 rxjs?
编辑:
使用concat,在收到第一个响应之前发送第二个请求。我希望在收到第一个请求的响应后进行第二个请求
【问题讨论】:
-
顺序排列是什么意思?你是说同步的吗?
-
响应式编程以订阅结束...不要在 fetchSingleMedia 中订阅并在 fetchMedia 中使用类似 forkJoin 的东西。呃,请不要仅仅因为你还不完全了解 RxJS 就使用 Promise,这会导致代码丑陋,混合和匹配 Promise 和 observables。
-
@Shravan 我的意思是一个接一个循环
-
@user5155835 如果一次获取失败,您希望发生什么?为什么一个接一个(如果是为了保护后端,请求之间的延迟就足够了吗?)?
-
@AndrewAllen 即使第一次失败,也应该提出第二次请求。就是这样,第二个请求应该在第一个请求完成后发出
标签: angular http rxjs angular-httpclient