Как заставить await future
длиться не более 5 секунд?
Мне это нужно, потому что при некоторых сетевых операциях соединение иногда выдает ошибку без вывода сообщений. Следовательно, мой клиент просто ждет часами без ответа. Вместо этого я хочу, чтобы это вызвало ошибку, когда клиенты ждут более 5 секунд
Мой код может вызвать ошибку, но он все еще ждет
Future shouldnotlastmorethan5sec() async {
Future foo = Future.delayed(const Duration(seconds: 10));;
foo.timeout(Duration(seconds: 5), onTimeout: (){
//cancel future ??
throw ('Timeout');
});
await foo;
}
Future test() async {
try{
await shouldnotlastmorethan5sec(); //this shoud not last more than 5 seconds
}catch (e){
print ('the error is ${e.toString()}');
}
}
test();