Necesito realizar una serie de transformaciones a partir de una fuente de datos. En el caso de que se emita un error mientras se envían datos a través de la canalización, debo manejar el error de manera adecuada. En cambio, la respuesta simplemente cuelga.
La única forma en que puedo cerrar la respuesta colgante es llamando a outStream.close(<string message here>) , pero eso no sirve de mucho porque me gustaría detectar el error que se está emitiendo.
const seriesOfPipes = async () => { try { const streams = [transformStream1, transformStream2, transformStream3]; const res = await fetch("foo"); let outStream = res.body; for (const streamItem of streams) { outStream.on('error', streamItem.destroy.bind(streamItem)); outStream = outStream.pipe(streamItem); } return outStream; } catch (e) { // the error doesn't appear console.log("you caught the error ", e.message); } };