Coordinating Multiple Futures with Future.wait
When you need to perform several asynchronous tasks at the same time and only proceed once all of them are finished, you can use Future.wait in Dart. This method takes a list of Future objects and returns a new Future that completes only when all the provided futures have completed. The resulting future will complete with a list containing the results of each original future, in the same order as they were provided. This is particularly useful when you want to aggregate results from multiple sources, such as fetching data from several APIs simultaneously, and then process all the data together once everything is ready.
main.dart
12345678910111213141516171819202122import 'dart:async'; Future<String> fetchUserData() async { await Future.delayed(Duration(seconds: 2)); return 'User data loaded'; } Future<String> fetchSettings() async { await Future.delayed(Duration(seconds: 3)); return 'Settings loaded'; } void main() async { print('Starting parallel fetch...'); List<String> results = await Future.wait([ fetchUserData(), fetchSettings(), ]); print('Both operations complete:'); print('Result 1: [36m${results[0]}[0m'); print('Result 2: [36m${results[1]}[0m'); }
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you show an example of how to use Future.wait in Dart?
What happens if one of the futures in Future.wait fails?
Are there alternatives to Future.wait for handling multiple asynchronous tasks?
Fantastico!
Completion tasso migliorato a 9.09
Coordinating Multiple Futures with Future.wait
Scorri per mostrare il menu
When you need to perform several asynchronous tasks at the same time and only proceed once all of them are finished, you can use Future.wait in Dart. This method takes a list of Future objects and returns a new Future that completes only when all the provided futures have completed. The resulting future will complete with a list containing the results of each original future, in the same order as they were provided. This is particularly useful when you want to aggregate results from multiple sources, such as fetching data from several APIs simultaneously, and then process all the data together once everything is ready.
main.dart
12345678910111213141516171819202122import 'dart:async'; Future<String> fetchUserData() async { await Future.delayed(Duration(seconds: 2)); return 'User data loaded'; } Future<String> fetchSettings() async { await Future.delayed(Duration(seconds: 3)); return 'Settings loaded'; } void main() async { print('Starting parallel fetch...'); List<String> results = await Future.wait([ fetchUserData(), fetchSettings(), ]); print('Both operations complete:'); print('Result 1: [36m${results[0]}[0m'); print('Result 2: [36m${results[1]}[0m'); }
Grazie per i tuoi commenti!