У меня есть приложение, в котором в случае сбоя действия (BiographyUpdate
) я бы хотел дать пользователю возможность повторить действие с помощью тоста.Когда пользователь отклоняет тост, он должен повторить действие, если они принимают:
@Effect()
public BiographyUpdate: Observable<any> = this._actions.pipe(
ofType(AuthActionTypes.BIOGRAPHY_UPDATE),
map((action: BiographyUpdate) => action.payload),
switchMap(biography => this._profile.updateBiography(`${Environment.Endpoint}/users/update`, biography)
.map(() => new BiographyUpdateSuccess())
.catch(() => Observable.of(new BiographyUpdateFailure(biography)))
)
);
@Effect({ dispatch: false })
public BiographyUpdateFailure: Observable<any> = this._actions.pipe(
ofType(AuthActionTypes.BIOGRAPHY_UPDATE_FAILURE),
map((action: BiographyUpdateFailure) => action.payload),
tap(payload => {
const toast = this._toast.create({
message: "Update failed.",
...ToastDefaults,
duration: 3000,
closeButtonText: 'Retry'
});
toast.onDidDismiss(() => new BiographyUpdate(payload));
toast.present();
})
);
Поскольку действие вызывается с помощью обратного вызова пользовательского интерфейса, я подумал, что этот способ будет работать, но действие больше никогда не вызывается.Есть предложения?