diff --git a/_posts/2024-07-12-fallering-operators.md b/_posts/2024-07-12-fallering-operators.md index 5995899..5bf6ff0 100644 --- a/_posts/2024-07-12-fallering-operators.md +++ b/_posts/2024-07-12-fallering-operators.md @@ -117,5 +117,11 @@ export const productsRemoveEffect = createEffect( 3. Для сохранение консистентности данных, для апдейта продукта используется concatMap, на самом деле реализация здесь не очень хорошая, так как concatMap будет использоваться для всех продуктов, а не для единственного, но если мы будем обновлять один и тот же продукт, существует вероятность, что второй запрос обработается раньше и данные из первого запроса это перетрут (так как на сервере конкурентные потоки и если ими плохо управляют, то такая ситуация вполне возможна), соответственно понимаем, что порядок в данном случае важен, поэтому используется concatMap 4. Ну как и во втором пункте, при удалении продуктов, нам не важно в каком порядке выполнятся запросы на удаление продуктов, поэтому можем пускать их в параллель, поэтому mergeMap -если бы в первом случае была динамическая фильтрация или сортировка, то switchMap был бы лучшим решением -Если бы была пагинация в виде lazy loading, то ее обычно выносят в отдельный эффект и используют concatMap так как в данном случае порядок тоже важен (в случае с сортировкой) \ No newline at end of file +Если бы в первом случае была динамическая фильтрация или сортировка, то switchMap был бы лучшим решением +Если бы была пагинация в виде lazy loading, то ее обычно выносят в отдельный эффект и используют concatMap так как в данном случае порядок тоже важен (в случае с сортировкой) + +### Ссылки по теме + +- [RxJS: switchMap, concatMap, mergeMap, exhaustMap - как работают](https://youtu.be/O8Pr47VyfDQ?si=uTR_QKQ6DklWAKgO) +- [RxJs switchMap vs mergeMap - Intro to Flattening Operators](https://youtu.be/qYdKmYp95Jg?si=ELlgVJ2KC7XrYr0H) +- [RxJs Operators - ExhaustMap vs concatMap](https://youtu.be/nh13_aPRQ0Q?si=sSXd87CmC1nVNZqa) \ No newline at end of file