Comment exécuter deux promesses, l'une après l'autre?Quel est l'idiome d'une chaîne de promesses?
Par exemple, en JavaScript je peux
var promise1 = new Promise();
var promise2 = new Promise();
// await returns a result2 from promise2
await promise1.then(() => promise2);
Comment puis-je faire la même chose en Perl 6?
my $promise1 = Promise.new();
my $promise2 = Promise.new();
// Here I get only Promise2 object, not its result
await promise1.then({ $promise2 });
Dois-je attendre un $ promise2 comme ça?
await promise1.then({ await $promise2 });
Ceci est faux, même en JavaScript. Vous auriez dû utiliser 'await Promise.all ([promettre1, promettre2])' (puis obtenir la seconde valeur du tableau de résultat si vous cherchez cela), sinon vous pourriez obtenir des rejections non gérées si 'promet2 'rejette avant que la promesse1 ne s'installe. Je suis certain qu'il y a un Perl équivalent à 'Promise.all' aussi bien – Bergi
Votre premier bloc de code n'est pas une série de promesses. Les deux s'exécutent en parallèle. – jfriend00
@Bergi, et si je dois utiliser dans la promesse2 le résultat de la promesse1? Supposons que la promesse1 renvoie un jeton et que la promesse2 l'utilise. Habituellement j'utiliser quelque chose le long des lignes 'promise1.then (result1 => promise2)' Promise.all exécute tous en parallèle, et non sequentally –