角度ngrx数据创建自定义效果
我目前正在我的应用程序中使用ngrx来管理状态。我正在考虑切换到ngrx数据进行简单的CRUD操作,并遇到了我的第一个问题。这是我目前的常规ngrx效果,我想知道如何用ngrx数据重现它(基于http响应创建新操作):角度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
@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'));
})
)
)
);