Maison >interface Web >js tutoriel >Quand le rappel du constructeur d'une promesse s'exécute-t-il ?

Quand le rappel du constructeur d'une promesse s'exécute-t-il ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-30 07:45:14576parcourir

When Does a Promise's Constructor Callback Execute?

Le moment de l'exécution du rappel du constructeur Promise

Lors de la création d'un objet Promise, une fonction de rappel (exécuteur) est transmise au constructeur. Cette fonction de rappel est responsable de l'initialisation et de l'exécution ou du rejet de la promesse. Cependant, il peut ne pas être immédiatement clair quand ce rappel est exécuté.

Dans l'extrait de code fourni, la question se pose : quand la fonction doSomeWork() est-elle appelée en relation avec la création de la promesse ?

Réponse :

Selon la spécification Promise et la documentation MDN, le rappel de l'exécuteur est appelé de manière synchrone immédiatement après la construction de la promesse. Cela signifie que doSomeWork() est exécuté dès que la nouvelle ligne Promise est atteinte.

Informations supplémentaires :

Cette exécution synchrone garantit que le rappel de l'exécuteur est toujours appelé avant d'autres opérations qui peuvent en dépendre. Par exemple, si vous enchaîniez plusieurs promesses ou utilisiez all ou race pour combiner des promesses, les rappels de ces promesses seraient assurés d'être appelés dans le bon ordre.

De plus, l'appel synchrone du rappel permet effets secondaires immédiats de l'exécution de la promesse, le cas échéant.

Remarque :

C'est important comprendre que le comportement asynchrone d'une promesse ne prend effet qu'après l'appel du rappel de l'exécuteur et la création de la promesse. Par conséquent, le code dans le rappel de l'exécuteur s'exécutera de manière synchrone, tandis que toutes les opérations asynchrones ultérieures auront lieu de manière asynchrone.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn