Chez oim, forum libre

Débattre => Informatique, programmation, geek attitude... => Discussion démarrée par: Songbird le samedi 21 mai 2016, 18:25

Titre: Dart - Programmation asynchrone
Posté par: Songbird le samedi 21 mai 2016, 18:25
 :gp:

Pour effectuer des tâches asynchrones avec dart, c'est relativement simple.
Il suffit d'importer le module suivant:
Code
import 'dart:async';

Il vous permettra d'avoir accès à la classe Future et au mot-clé async. (ce dernier permettant donc d'attacher une fonction de callback sur votre méthode/fonction)

Voici comment procéder:
Code
myFunction().then((_){
        /*your code */
      });

Bien évidemment myFunction() doit être déclarée de la façon suivante pour que ça fonctionne:
Code
Future myFunction() async 
{
    /* do something */
    /* La fonction doit forcément renvoyer un objet Future pour que la fonction puisse posséder une fonction de callback !*/
}

Gestion des exceptions

Pour catcher les éventuelles erreurs, il vous faudra bien évidemment les déclarer dans le corps de votre fonction puis:
Code
myFunction().then((_){
        /*your code */
      }, onError: (e){
        print(e);
      });

Vous pouvez également obtenir la trace de la pile en ajoutant un paramètre à la closure:
Code
myFunction().then((_){
        /*your code */
      }, onError: (e, stack){
        print(e);
        print(stack);
      });


Rattrapant alors les erreurs déclarées. :)
Titre: Dart - Programmation asynchrone
Posté par: Songbird le lundi 23 mai 2016, 20:22
Off-Topic:
Mise à jour du post.