问题
How would you wait for future response for a specific amount of time?
Say, we make a http post request and await for its response before we close the http request, but, we wait for only 3 secs, else we close the request.
How would you achieve that?
Something like
Future makePostReq() async{
....
await http response for 3 secs
....
if(response) {
... Do something with it
}
Http.close
}
回答1:
You can use Future.any
constructor to make a race condition
final result = await Future.any([
Future.value(42),
Future.delayed(const Duration(seconds: 3))
]);
You can also use Future.timout method
final result = await Future.value(42).timeout(const Duration(seconds: 3));
来源:https://stackoverflow.com/questions/52672137/await-future-for-a-specific-time