使用Ngrx存储,我有以下2种效果:
@Effect({ dispatch: false })
toastSuccess$ = this.actions$
.pipe(
ofType(TOAST_SUCCESS),
map((action: any) => this.toastr.success(action.payload, 'Success'))
);
@Effect()
appContextChanged$ = this.actions$
.pipe(
ofType(UPDATE_USER_APP_CONTEXT_SUCCESS),
mergeMap(() => of(
{ type: TOAST_SUCCESS, payload: 'App context updated successfully!' })),
tap(() => location.reload()),
catchError(() => of({ type: UPDATE_USER_APP_CONTEXT_FAILED }))
)
我想做的是将tap
location.reload()
延迟1000毫秒(因此,面包片显示一秒钟,然后刷新页面),但是我尝试使用{{ 1}}到处都没有成功。如何在敬酒效果后延迟刷新页面,即delay
?
答案 0 :(得分:0)
为此创建一个不同的效果,以便appContextChanged$
可以完成并通知您的toastSuccess
效果:
@Effect({dispatch: false})
reload$ = this.actions$
.pipe(
ofType(TOAST_SUCCESS),
tap(() => location.reload())
似乎toastr.success
返回一个动作,是真的吗?在这种情况下,您可以代替Toast_sucess
运算符中的ofType
来监听该操作。