Flutter Pulse
646 subscribers
402 photos
889 links
На канале будут новости про flutter с сайтов, информация об обновлении пакетов, а также авторский контент.
Download Telegram
1..2..3... Гонка Future

Представьте, что вы ждёте ответ от нескольких источников. Но вам нужен только один ответ. Ладно, такое случается не часто, но представьте...

Ждём только 1 ответ

Будьте осторожны, если первый запрос выдаёт ошибку до того, как придёт второй ответ... Future завершится с ошибкой. Значит, вам нужно игнорировать эту ошибку в вашем будущем запросе.


import 'dart:async';
import 'package:http/http.dart' as http;

void main() async {
await Future.any([
getPost(SERVER_1), // первый сервер
getPost(SERVER_2), // второй сервер
]);
}

Future<String> getPost(String url) async {
final response = await http.get(Uri.parse('....'));
if (response.statusCode == 200) {
return response.body; // возвращаем тело ответа
} else {
throw Exception('Не удалось загрузить пост'); // выбрасываем исключение
}
}


Что возвращает Future.any?
Он возвращает Future, который завершается с первым результатом. Вы можете передать несколько Future разных типов.

Оцените новую рубрику! 👍💡 Все подобные новости можно найти по хэштегу #FlutterPulseTips
#flutter #dart #flutterpulse #FlutterPulseTips #FutureAny #AsyncProgramming #FlutterTips #MobileDevelopment #ProgrammingTips
👍3