Estoy usando una función proporcionada por una biblioteca de terceros. Esta función toma una función de devolución de llamada como parámetro, pero me gustaría esperar a que se llame a esta devolución de llamada antes de continuar. ¿Hay una forma estándar/aceptada para hacer esto?esperar la función async javascript para devolver
Respuesta
No estoy seguro si esta es una posible solución para usted pero puede lograr el resultado deseado al dividir su código en 2 funciones. Supongamos que esto es lo que va a hacer:
Básicamente esta es su función original:
function origFunc() {
codeBeforeThirdPartyFunc();
ThirdPartyFunc(oldCallBackFunc);
Wait();
codeAfterCallBackFunc();
}
se puede modificar el flujo de código con algo como:
function newFunc() {
codeBeforeThirdPartyFunc();
ThirdPartyFunc(newCallBackFunc);
}
function newCallBackFunc() {
oldCallBackFunc();
codeAfterCallBackFunc();
}
Esto eliminará la espera lazo. Y hasta donde sé, la espera ocupada no funciona en IE (porque? Dios solo sabe) ...
No sé si la solución de Sharad funcionará en todos los casos (por ejemplo, si las llamadas a funciones son tan muy encadenado que tiene que pasar datos como variables en lugar de parámetros). Mismo problema con las variables globales. JavaScript simplemente no tiene una habilidad de "esperar".
Aunque tuve un problema similar y con jQuery, terminé con una solución de tipo MacGyver que le da muchísimo control cuando se ejecutan las funciones de JavaScript. Me acaba de publicar aquí como una respuesta a mi propia pregunta (pero se trata de una respuesta que no está comprobado - buscar mi nombre de usuario Emile): How to get a variable returned across multiple functions - Javascript/jQuery
Aquí hay otro método de loading jQuery asynchronously, que no dependa de otro guión.
- 1. Javascript esperar la respuesta de la función
- 2. Jquery: esperar la devolución de llamada antes de devolver
- 3. Esperar antes de activar una función para ejecutar en JavaScript
- 4. Javascript async loop processing
- 5. Devolver DataTable usando async .net 4.0
- 6. ¿Se puede devolver una función JavaScript?
- 7. PHP Función para devolver la cadena
- 8. ¿Por qué utilizar async y esperar con Task <>?
- 9. Esperar iframe para cargar en JavaScript
- 10. C# ¿Cómo "verificar", "cancelar" y esperar en Async WebRequests?
- 11. Devolver objeto desde la función
- 12. Devolver un valor booleano en una función de JavaScript
- 13. ¿Qué hace "devolver esto" dentro de una función javascript?
- 14. Función C# para devolver objetos/entidades genéricos
- 15. Obteniendo una función para devolver dos enteros
- 16. función mysql para devolver una tabla
- 17. cómo devolver valores en javascript
- 18. Postgres - Función para devolver la intersección de 2 ARRAY?
- 19. Regex usando javascript para devolver solo números
- 20. Fuerza Javascript llamada a la función que esperar hasta que un anterior ha terminado
- 21. Devolver estructura de la función (C)
- 22. jQuery Ajax: ¿cómo esperar hasta que las solicitudes * async * finalicen antes de continuar?
- 23. Javascript eval() para la función con argumento
- 24. función Javascript para la interpolación trilineal
- 25. argumentos para la función JavaScript Anónimo
- 26. Javascript: parámetros "infinitos" para la función?
- 27. Cómo esperar hasta que las solicitudes async jQuery AJAX anidadas hayan finalizado?
- 28. ¿Puedo devolver el doble * en la función?
- 29. ¿Puede la función main() devolver doble?
- 30. Cómo devolver Data.Map de la función
acaba de abrazar la asincronía. no intentes luchar contra eso. – Anurag