Dans Dart, je veux exécuter plusieurs fonctions coûteuses, indépendantes les unes des autres, et assigner les résultats à mes variables, en fonction de la fonction qui les a produites. Environ une version parallèle de celle-ci:Comment attribuer les résultats des contrats à terme en Dart en fonction du futur qui les a produits?
double x = getX();
double y = getY();
Je pense à quelque chose comme ceci:
double x, y;
Future.wait([
futureGetX(),
futureGetY()
]).then((List results) {
results.foreach((r) {
// if(r is produced by futureGetX) x = r;
// if(r is produced by futureGetY) y = r;
});
});
et je ne sais pas comment mettre en œuvre cette partie is produced by
. Un moyen serait d'envelopper le résultat de chaque fonction dans une classe différente et, dans la partie then
, vérifiez la classe du résultat:
if(r is wrapperForX) x = r.getValue();
if(r is wrapperForY) y = r.getValue();
mais cela semble très inélégante pour moi. Aucune suggestion?
Comment saurons-nous lequel a produit le résultat? Est-ce que celui qui n'a pas produit le résultat est nul? Ou voulez-vous juste obtenir le premier résultat et ignorer le 2ème? –