角度ngrx数据创建自定义效果

角度ngrx数据创建自定义效果,ngrx,angular-ngrx-data,Ngrx,Angular Ngrx Data,我目前正在我的应用程序中使用ngrx来管理状态。我正在考虑切换到ngrx数据进行简单的CRUD操作,并遇到了我的第一个问题。这是我目前的常规ngrx效果,我想知道如何用ngrx数据重现它(基于http响应创建新操作): @Effect() insertUser$:Observable=此.action$.pipe( 类型(UsersActionTypes.UserInsert), map((action:UserInsert)=>action.payload), 合并映射(有效负载=> this

我目前正在我的应用程序中使用ngrx来管理状态。我正在考虑切换到ngrx数据进行简单的CRUD操作,并遇到了我的第一个问题。这是我目前的常规ngrx效果,我想知道如何用ngrx数据重现它(基于http响应创建新操作):

@Effect()
insertUser$:Observable=此.action$.pipe(
类型(UsersActionTypes.UserInsert),
map((action:UserInsert)=>action.payload),
合并映射(有效负载=>
this.UserService.insert({
用户:有效载荷。用户,
refreshToken:payload.loggedInUser.refreshToken
}).烟斗(
map((响应:IUserPersistResponse)=>{
return!response.accessToken
?新用户persistSuccessLoginFailure()
:new UserInsertSuccess({
答复:答复,,
用户:有效载荷。用户
});
}),
catchError((错误:字符串)=>{
返回(new UserInsertFailure('UserInsert Failed'));
})
)
)
);

有什么建议吗?

这方面有什么进展吗?@samneric?最近我没有看过,我会在周末再看。@samneric可以在不知道
UserService
API的情况下回答。例如,什么是
IUserPersistResponse
?就本问题而言,您可以假设IUserPersistResponse只包含一个字符串:“accessToken”。如果响应中存在该字段,则返回UserInsertSuccess操作,否则返回UserPersistancesLoginFailure。
@Effect()
insertUser$: Observable<Action> = this.action$.pipe(
    ofType(UsersActionTypes.UserInsert),
    map((action: UserInsert) => action.payload),
    mergeMap(payload =>
        this.UserService.insert(<IUserPersistRequest>{
            user: payload.User,
            refreshToken: payload.loggedInUser.RefreshToken
        }).pipe(
            map((response: IUserPersistResponse) => {
                return !response.accessToken
                        ? new UserPersistSuccessLoginFailure()
                        : new UserInsertSuccess({
                            response: response,
                            User: payload.User
                        });
            }),
            catchError((error: string) => {
                return of(new UserInsertFailure('UserInsert Failed'));
            })
        )
    )
);