Les fonctions Javascript asynchrones peuvent-elles être appelées de manière synchrone ?
Bien que la programmation asynchrone soit courante en Javascript, des scénarios spécifiques peuvent nécessiter des appels de fonction synchrones pour les fonctions synchrones existantes. bases de code. Bien que l'on reconnaisse la nature sous-optimale de cette approche, il peut être nécessaire d'adapter les appels asynchrones à une base de code synchrone plus grande en raison de contraintes de temps.
Bloquer les fonctions de rappel
Le défi consiste à bloquer l'exécution de la fonction appelante jusqu'à ce que le rappel de la fonction asynchrone soit reçu. Les considérations clés incluent :
Exemple de mise en œuvre :
function doSomething() { var data; function callBack(d) { window.data = d; } myAsynchronousCall(param1, callBack); // Start polling var intvl = setInterval(function() { if (window.data) { clearInterval(intvl); console.log(data); } }, 100); }
Refactoring pour Conformité asynchrone :
Cependant, il convient de noter que l'approche idéale reste de modifier la fonction appelante et passez un rappel pour gérer l’opération asynchrone. Cela maintient l'intégrité asynchrone sans sacrifier la fonctionnalité de base de code synchrone.
function doSomething(func) { function callBack(d) { func(d); } myAsynchronousCall(param1, callBack); } doSomething(function(data) { console.log(data); });
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!