Necesito escribir una función en JavaScript, que devuelve un estado de llamar a una función asíncrona. Sin embargo, la persona que llama solo recibe el valor y no se debe proporcionar ninguna función de devolución de llamada. He intentado algo así como:Cómo bloquear las funciones asíncronas en JavaScript
function getState() {
var ret = null;
asyncCall("request",
function() { ret = "foo"; } // callback
);
while (ret === null)
; // block on the asynchronous call
return ret;
}
Sin embargo, el bucle nunca se va a acabar ...
¿Alguna idea? Gracias.
¿Por qué quiere bloquear la llamada asincrónica en primer lugar? Hacer esto no tiene sentido. – Tomalak
@Tomolak: porque es una llamada proporcionada por Firefox y no puedo cambiarla. Se espera que tome como mucho milisegundos, no quiero refactorizar todos mis otros códigos solo por esto. –
¿Se puede publicar la función que llama a 'getState()'? – Tomalak