Loading ...

Programmazione asincrona in Dart

Programmazione asincrona in Dart

Dart supporta la programmazione asincrona di default; per farlo usa la classe Future!

Questa classe ci permette di eseguire una operazione anche dopo la fine del codice.

Detto così è un pò difficile da capire, quindi passiamo ad un esempio.

Abbiamo un file di testo con scritto Verrà scritto prima della FINE!.

E abbiamo questo codice che lo legge in maniera asincrona:

import 'dart:io';

main() {
  File file = new File("/home/matte/Desktop/test.txt");
  Future<String> str = file.readAsString();
  str.then((data) => print(data));
  print("FINE");
}

E questo è l'output:

FINE
Verrà scritto prima della FINE!

In pratica, lo script arriva alla fine, ma rimane il task lanciato per leggere il file.

Quando il task finisce, il codice ritorna alla funzione then, ed esegue quello che ci serve (in questo caso un banale print).

Enjoy!