Я довольно новичок в Dart and Flutter и сталкиваюсь с препятствием.
Я занимаюсь разработкой приложения во флаттере, которое использует сетевые вызовы, аутентификацию токенов и т. Д. Я использую Dio и RxDart,Проблема в том, что по умолчанию мне нужно повторять каждый вызов API 5 раз, пока я не получу правильный ответ от сервера (например, когда я делаю вызов для ответа токен-сервера 202 для первого вызова и 200 для второго или третьего вызова). Как я могу повторить звонок?
Вот мой метод GET:
Future _get(String url, {Map<String, dynamic> headers}) async {
var response = await dio.get(url, options:
new Options(headers: headers));
return response.data;
}
и метод, который возвращает наблюдаемое будущее:
Observable get2(String url, {Map<String, dynamic> headers}) {
return Observable.retry(_sourceStream(url, headers: headers) , 5);
}
Stream Function() _sourceStream(String url, {Map<String, dynamic> headers}) {
return () => Observable.fromFuture(_get(url, headers: headers));
}
Я знаю, что в RxDart есть метод retryWhen factory, но я не смог правильно использовать его с моими методами. Кто-нибудь может помочь?