RxJS switchMap 并将响应传递给另一个操作员
RxJS switchMap and passing response to another operator
假设我有这样的代码:
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 which returns url 在那里我可以 post 新照片,
第二个是 http 放在我必须上传照片的地方,
第三个是 http post,我必须在其中确认照片已上传到那个 url。
我的问题是可以将 url 传递给第二个 switchMap 吗?在第二个 switchMap 中,我收到了 uploadPhotoToProviderdUrl 方法的响应,但我如何才能从之前的方法获得响应?
假设您所有的 API 调用都是 Observables:
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');
}
});
假设我有这样的代码:
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 which returns url 在那里我可以 post 新照片, 第二个是 http 放在我必须上传照片的地方, 第三个是 http post,我必须在其中确认照片已上传到那个 url。
我的问题是可以将 url 传递给第二个 switchMap 吗?在第二个 switchMap 中,我收到了 uploadPhotoToProviderdUrl 方法的响应,但我如何才能从之前的方法获得响应?
假设您所有的 API 调用都是 Observables:
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');
}
});