You might need to import the dart async library if you are working in a local environment , but if you are using dartpad , don't worry about it
Copy //Import dart async library with the following statement if you are
// working in a local environment, add the following line on top of each code
import "dart:async";
Copy
void main() {
// Futures
// chaining then
print(" Start fetching images");
getData().then((images) {
return images + " " + "caption";
}).then((captionedimages) {
print(captionedimages + " " + " save to disk");
});
print("Loading Images");
}
Future<String> getData() {
Future<String> a = Future<String>.delayed(Duration(seconds: 5), () {
// Logic
print(" Image Fetched !!!!!");
return "Image1 ,Image 2 ,....";
});
return a;
}
Copy void main() async {
// async , await
var images = await fetchImage();
print(images);
var capImages = await captionImages(images);
print(capImages);
var saved = await savetodisk(capImages);
print(saved);
}
Future<String> fetchImage() async {
await Future<String>.delayed(const Duration(seconds: 5));
return "Image1,Image2,....";
}
Future<String> captionImages(images) async {
await Future<String>.delayed(const Duration(seconds: 5));
return images+" "+"caption";
}
Future<String> savetodisk(capImages) async {
await Future<String>.delayed(const Duration(seconds: 5));
return capImages+" "+"Saved";
}
Flutter provides a high level API called "Futurebuilder" which makes dealing with Future much easier