Können asynchrone Javascript-Funktionen synchron aufgerufen werden?
Während asynchrone Programmierung in Javascript üblich ist, können bestimmte Szenarien synchrone Funktionsaufrufe für vorhandene synchrone Funktionen erfordern Codebasen. Auch wenn man die suboptimale Natur dieses Ansatzes anerkennt, kann es aus Zeitgründen notwendig sein, asynchrone Aufrufe in eine größere synchrone Codebasis umzuwandeln.
Blockieren von Rückruffunktionen
Die Herausforderung besteht darin, die Ausführung der aufrufenden Funktion zu blockieren, bis der Rückruf von der asynchronen Funktion empfangen wird. Zu den wichtigsten Überlegungen gehören:
Beispielimplementierung:
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 für Asynchrone Compliance:
Es ist jedoch zu beachten, dass der ideale Ansatz weiterhin darin besteht, den Aufruf zu ändern Funktion und übergeben Sie einen Rückruf, um den asynchronen Vorgang abzuwickeln. Dadurch bleibt die asynchrone Integrität erhalten, ohne die Funktionalität der synchronen Codebasis zu beeinträchtigen.
function doSomething(func) { function callBack(d) { func(d); } myAsynchronousCall(param1, callBack); } doSomething(function(data) { console.log(data); });
Das obige ist der detaillierte Inhalt vonKönnen asynchrone JavaScript-Funktionen zur synchronen Ausführung gezwungen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!