La différence entre vous attendent des Promesse de.tous les() et plusieurs attendent?
Quelle est la différence entre:
const [result1, result2] = await Promise.all([task1(), task2()]);
et
const t1 = task1();
const t2 = task2();
const result1 = await t1;
const result2 = await t2;
et
const [t1, t2] = [task1(), task2()];
const [result1, result2] = [await t1, await t2];
Surtout, je l'ai lu à ce sujet et fait quelques essais avec promisified minuteries. Maintenant, pouvez-vous développer sur ce "Oui"?
OriginalL'auteur Hidden | 2017-07-24
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le vérifier vous-même.
Dans ce violon, j'ai couru un test pour démontrer le blocage de la nature de
await
, par opposition àPromise.all
qui commencera à toutes les promesses et tandis que l'un est en attente, elle ira avec les autres.t1 = task1(); t2 = task2()
et à l'aide deawait
par la suite, pour deux d'entre euxresult1 = await t1; result2 = await t2;
comme dans sa question, contrairement à ce que vous faites des tests en utilisant leawait
sur l'appel original commeresult1 = await task1(); result2 = await task2();
. Le code dans sa question n'commencer, toutes les promesses à la fois. La différence, comme la réponse montre, c'est que les échecs va signalés plus rapide avec laPromise.all
.OriginalL'auteur zpr