read nodejs node example javascript node.js stream node-request

javascript - nodejs - ¿Por qué no request.on() trabaja en Node.js



stream javascript (2)

Funciona exactamente de la manera que explicaste. Tal vez el problema al que se enfrenta es debido a la naturaleza asincrónica de node.js. Estoy bastante seguro de que estás llamando a tu getData() de forma síncrona. Pruebe esto y vea si su llamada de request no está devolviendo algo:

request(''someurl'') .on(''data'', function(data){ console.log(data.toString()); .on(''end'', function(){ console.log("This is the end..."); });

Eche un vistazo a este artículo aquí . No es corto, pero explica cómo escribir tu código para tratar este tipo de situación.

Estoy tratando de obtener algunos datos de un servicio de terceros utilizando el módulo de solicitud de nodo y devolver estos datos como una cadena desde una función. Mi percepción era que request() devuelve una secuencia de lectura ya que puedes hacer request(...).pipe(writeableStream) que, pensé, implica que puedo hacer

function getData(){ var string; request(''someurl'') .on(''data'', function(data){ string += data; }) .on(''end'', function(){ return string; }); }

pero esto realmente no funciona. Creo que tengo una percepción errónea de cómo request () o las transmisiones de nodos realmente funcionan. ¿Alguien puede aclarar mi confusión aquí?


Lo que obtengo es que desea acceder a la string más tarde y pensó que la request devolvería una cadena completa. Si es así, no puedes hacerlo sincrónicamente, tienes que poner tu código para procesar la string completa en el controlador de eventos end esta manera:

function getData(){ var string; request(''someurl'') .on(''data'', function(data){ string += data; }) .on(''end'', function(){ processString(string); }); } getData();