Использую clean архитектуру, мне через usecase вызывать token.cancel() или как?
что значит отмена запрос? Типа TCP соединение разорвать во время получения данных или отправки запроса? Или тупо игнорирование ответа?
ну допустим у меня есть поиск, при поиске отправляется несколько запросов, хочу оставить последний, чтобы получить данные от последнего запроса, поэтому нужно отменять все предыдущие запросы.
Всё таки запросы отправляются? Значит забить болт на их ответы?
время ответов разное, не всегда ответ от последнего отправленного запроса приходит последним
https://pub.dev/documentation/rxdart/latest/rx/SwitchMapStreamTransformer-class.html
тоже вариант, но как все же отменить запрос, чтобы не нагружать сервер?
Я недавно реализовывал это через зоны. Чтоб не прокидывать этот CancelToken через миллиард абстракций Условно в блоке в зоне запускаешь юзкецс, в параметрах зоны задаешь токен И где уже создаешь запрос - вытаскиваешь токен и когда надо - в блоке канселишь токен Только надо сделать обработку эксепшена от закрытия
можешь пример скинуть пжл?
Если вам нужно отменять сетевые запросы,, можно комбинированный switchMap в с CancelableOperation из async, чтобы отменять предыдущие запросы https://pub.dev/documentation/async/latest/async/CancelableOperation-class.html
И потом переписывать всю бизнес логику с Future на CancelableOperation Либо через все абстракции прокидывать CancelToken
Обсуждают сегодня