Обратный вызов в функции timeout
из Future
ожидает, что будет возвращено значение того же типа, что и исходное Future
. Это сделано для того, чтобы Future
, возвращаемый обратным вызовом, всегда имел результат, вне зависимости от того, истекло ли время ожидания или нет.
Просто верните объект того же типа, что и ваше исходное будущее в обратном вызове timeout
.
myMethod('myapi.com')
.timeout(Duration(seconds: 10), onTimeout: (){
print('time timeout');
//show dialog code here
return Map();
})
.then((response) {//Response will end up being an empty map on timeout and the return of `myMethod` otherwise
//mycode
});