【发布时间】:2016-11-09 15:23:13
【问题描述】:
我正在尝试在 Angular2 中进行文件上传。我使用在这里找到的代码 - https://plnkr.co/edit/ozZqbxIorjQW15BrDFrg?p=info。
我需要在我的史诗(Angular2 + Redux)中使用响应,所以我想做类似的事情:
updateAvatarRequest = (action$: ActionsObservable<IPayloadAction>) => {
return action$.ofType(MeActions.UPDATE_AVATAR)
.mergeMap<IPayloadAction>(({payload}) => {
return this.meService.updateAvatar()
.map(result => ({
// ACTION ON SUCCESS
}))
.catch(error => Observable.of({
// ACTION ON ERROR
}));
});
}
问题是我没有从我的 Observable 得到任何响应,直到我不订阅它。另一个问题是我不能在这个 observable 上使用 catch()。如果我这样做,它会起作用:
this.meService.updateUserAvatar(formData)
.subscribe(
(x) => console.log('onNext: %s', x),
(e) => console.log('onError: %s', e),
() => console.log('onCompleted')
);
但我想保持一致。请帮助我处理这个 RxJS,直到我失去其余的头发。
【问题讨论】:
标签: angular rxjs observable