У меня есть эффект, который будет что-то делать, если тот же пользователь не нажал, чтобы избежать ненужных запросов, правильно?
Этот код работает, однако, когда он попадает в состояние, когда тот же пользователь уже нажали, снова нажали, это не вызывает никаких ошибок в Магазине, таким образом, не производит никакого следующего эффекта.
Как я могу вернуть ошибку, если мой takeWhile не удовлетворен в моих логиках c?
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) })))
);
})
)
);