Как переписать этот @effect для вызова удаления API, не возвращающего сущность?

Проблема в том, что api.deleteUser возвращает ноль (статус 204), поэтому пользователь теряется. Как передать пользователя (который является action.payload) чтобы DeleteUserSuccess(user)?

@Effect()
public deleteUser$: Observable<Action> = this._actions$
    .ofType(DELETE_USER_PENDING)
    .pipe(
    switchMap((action: IAction<User>) => 
    this.api.deleteUser((action.payload as User).id)),
    map((user: User) => new DeleteUserSuccess(user)),
    catchError((err: Error, caught: Observable<Action>) => {
        console.log(err);
        return caught;
    })
    );

1 ответ

Я нашел решение

@Effect()
    public deleteUser$: Observable<Action> = this._actions$
        .ofType(DELETE_USER_PENDING)
        .pipe(
        switchMap((action: IAction<User>) =>
        this.api.deleteUser((action.payload as User).id).
        map(() => new DeleteUserSuccess(action.payload as User))),
       // map((user: User) => new DeleteUserSuccess(user)),
        catchError((err: Error, caught: Observable<Action>) => {
            // tslint:disable-next-line
            console.log(err);
            return caught;
        })
        );
Другие вопросы по тегам