Это моя функция маршрута:
async function test (req, res) {
try {
await new Promise((resolve, reject) => {
const someStream = getReadableStream();
res.write('first row');
someStream
.on('error', (error) => {
console.error(`on error ${error}`);
return reject(error);
})
.on('end', () => {
return resolve();
})
.pipe(res);
});
} catch (error) {
console.error(`catch ${error}`);
res.status(500).end(error);
}
}
Тем не менее, если во время конвейера происходит сбой потока (некоторые данные отправляются успешно, и выводятся обе ошибки консоли ошибок), код состояния ответа остается 200
.
Как я могу переписать эту функцию, чтобы можно было выполнять потоковую передачу и изменять код состояния в соответствии с успешностью потока?