169 похожих чатов

Всем привет, не подскажите как через rxjs сделать последовательные запросы

которые будут дожидаться ответа от сервера и только после этого отправлять новый,?
Стоит задача отправить на бэк более 10к обьектов, но за раз можно только 250, и теперь хочу кусками отправлять.

15 ответов

15 просмотров

може тут не rxJs надо, а просто рекурсия? Если запрос выполнился, то там еще раз вызывать тот же метод... хотя даже не рекурсия, а просто продолжать выполнять, пока массив есть

Alen- Автор вопроса
Oleksandr 🤖
може тут не rxJs надо, а просто рекурсия? Если зап...

Спасибо за ответ, решил именно через Rxjs так как там очень грамотно реализована работа с потоками, не нужно париться на счет рекурсии и мемори лик. Решил простыми операторами from, bufferCount,concatMap первый держит в себе всю инфу второй принимает в себя размер или лимит отправляемых данных(250 в моем случае) третий уже выполняет отправку, дожидается ответа и снова отправляет новые данные если еще есть.

а когда упадет один из запросов, то скореей всего ведь цепочка вся отсновится? Давно делал подобную таску, то там пришлось дополнительно это обрабатывать, чтобы остальные запросы продолжали лететь

Alen- Автор вопроса
Oleksandr 🤖
а когда упадет один из запросов, то скореей всего ...

Возможно придется добавить catchError, честно говоря точно не знаю упадет ли весь цикл при первой ошибке, нужно будет затестить как нибудь.

Alen
Возможно придется добавить catchError, честно гово...

по-моему, я применил был concat вместо concatMap, чтобы избежать этой проблемы. У меня там дело было с пачкой платежей через страйп. И вот если какой-то платеж не прошел, то остальные не должны были прерваться... Что-такое. Ну это было больше года назад...

Alen- Автор вопроса
Oleksandr 🤖
по-моему, я применил был concat вместо concatMap, ...

Спасибо за совет, завтра попробую протестить.

Oleksandr 🤖
по-моему, я применил был concat вместо concatMap, ...

catchError, чтобы ошибка не полетела во внешний поток, можно ретрайнуть ещё сначала

Alen- Автор вопроса
Leonid Симаков
catchError, чтобы ошибка не полетела во внешний по...

Я правильно понял мой конкатмап это внутренний поток, и при добавке catchError я не допускаю прерывания внутреннего потока?

Alen
Я правильно понял мой конкатмап это внутренний пот...

Я не прям эксперт, но если не пустить ошибку выше с помощью catchError, то будет вызван по идее следующий concatMap

Alen- Автор вопроса
Alen- Автор вопроса
Leonid Симаков
Я не прям эксперт, но если не пустить ошибку выше ...

Эксперт не эксперт но в теории звучит очень логично😅

Alen
Эксперт не эксперт но в теории звучит очень логичн...

Ну внешний поток не должен упасть в таком случае, ошибку об работаете и замените на что-то, хоть даже EMPTY (просто сразу завершит внутренний поток с запросом в конкатмапе)

Alen
Возможно придется добавить catchError, честно гово...

если добавить кэтч после concatMap то поток не упадет, но завершится. кэтч нужно добавлять внутри concatMap, чтобы перехватить ошибку одного запроса и вместо него вернуть чтото

Alen- Автор вопроса
xxtux Shvets
если добавить кэтч после concatMap то поток не упа...

Внутри конкатмапа это .pipe() к нему прикрутить?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта