假设我有这样的代码:
this.apiService.getUrlForPhoto('photo1')
.switchMap((url) => {
return this.apiService.uploadPhotoToProvidedUrl(url);
})
.switchMap((response) => {
return this.apiService.confirmPhotoUpload(confirmationToken);
})
.subscribe((response) => {
if (response.confirmed) {
console.log('Success');
}
});
首先是http get,它返回可以在其中发布新照片的网址, 其次是http放在我必须上传照片的地方, 第三是http帖子,我必须确认照片已上传到该URL。
我的问题是可以将网址传递给第二个switchMap吗?在第二个switchMap处,我从uploadPhotoToProviderdUrl方法获得响应,但是如何从先前的方法获得响应?
答案 0 :(得分:4)
假设您所有的API调用都是可观察的:
this.apiService.getUrlForPhoto('photo1')
.switchMap((url) => {
return this.apiService.uploadPhotoToProvidedUrl(url)
.switchMap((response) => {
// Here you can use 'url'
return this.apiService.confirmPhotoUpload(confirmationToken);
})
})
.subscribe((response) => {
if (response.confirmed) {
console.log('Success');
}
});