tengo una función simplificada que tiene este aspecto:Cómo hacer una espera de función hasta que una devolución de llamada ha sido llamada usando Node.js
function(query) {
myApi.exec('SomeCommand', function(response) {
return response;
});
}
Básicamente lo quiero llamar myApi.exec
, y devolver la respuesta que es dado en la devolución de llamada lambda. Sin embargo, el código anterior no funciona y simplemente regresa inmediatamente.
Sólo por un intento muy hacker, probé el debajo del cual no funcionó, pero al menos usted consigue la idea de lo que estoy tratando de lograr:
function(query) {
var r;
myApi.exec('SomeCommand', function(response) {
r = response;
});
while (!r) {}
return r;
}
Básicamente, lo que es un nodo buena' .js/¿Manera conducida por el evento de esto? Quiero que mi función espere hasta que se llame a la devolución de llamada, luego devuelva el valor que se le pasó.
¿O lo estoy haciendo completamente de la manera incorrecta aquí, y debería llamar a otra devolución de llamada, en lugar de devolver una respuesta? – Chris
Sí, exactamente. Una buena manera de resumir lo que estaba tratando de decir a continuación :) – Jakob
[Este] (http://stackoverflow.com/a/437204/1804173) es, en mi opinión, la mejor explicación SO ** por qué ** el ciclo ocupado no funciona t trabajo. – bluenote10