Жду будущего на определенное время - PullRequest
0 голосов
/ 05 октября 2018

Как вы будете ждать ответа в будущем в течение определенного периода времени?

Скажем, мы отправляем запрос http и ждем его ответа, прежде чем закрыть запрос http, но мы ждем только 3сек, иначе мы закрываем запрос.

Как бы вы этого достигли?

Что-то вроде

Future makePostReq() async{
  .... 

  await http response for 3 secs

  .... 

 if(response) {
  ... Do something with it
 }

 Http.close

} 

1 Ответ

0 голосов
/ 05 октября 2018

Вы можете использовать Future.any конструктор для создания условия гонки

final result = await Future.any([
  Future.value(42),
  Future.delayed(const Duration(seconds: 3))
]);

Вы также можете использовать Future.timout метод

final result = await Future.value(42).timeout(const Duration(seconds: 3));
...