如果没有点击同一个用户,我有一个效果会做一些事情,以避免不必要的请求,对吗?
这段代码可以工作,但是当它陷入已经点击的同一个用户再次点击的情况下,它不会向 Store 发出任何错误,因此不会产生任何下一个效果。
如果我的 takeWhile 对我的逻辑不满意,我该如何返回错误?
updatePartial$: Observable<Action> = createEffect(() =>
this.action$.pipe(
ofType(fromPeopleActions.UPDATE_MANY_PARTIAL),
withLatestFrom(this.selectorsService.userFriendClicked),
takeWhile(([action, userFriendClicked]) => action.updates.id !== userFriendClicked.id),
switchMap(([action, userFriendClicked]) => {
console.log('oi');
const peoples: Update<IPeople>[] = [];
const https: Observable<Update<IPeople>>[] = [];
peoples.push(action.updates);
peoples.push({
...userFriendClicked,
changes: {
isClicked: false,
},
});
peoples.forEach((people) => https.push(this.backendService.updatePartial(people)));
return forkJoin(https).pipe(
map(() => fromPeopleActions.UPDATE_MANY_PARTIAL_SUCCESS({ updates: peoples })),
catchError((error) => of(fromPeopleActions.UPDATE_MANY_PARTIAL_FAIL({ error: this.requestHandlerService.getError(error) })))
);
})
)
);