From d706bb5b34b53b2d2379459e19a470368d99a7e9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 12 Dec 2024 14:23:39 +0100 Subject: [PATCH] catalog-backend: update entities response writing Signed-off-by: Patrik Oldsberg --- .../src/service/response/write.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/catalog-backend/src/service/response/write.ts b/plugins/catalog-backend/src/service/response/write.ts index 950dd99ba7..0962ee15d1 100644 --- a/plugins/catalog-backend/src/service/response/write.ts +++ b/plugins/catalog-backend/src/service/response/write.ts @@ -78,15 +78,18 @@ export async function writeEntitiesResponse( const prefix = first ? '[' : ','; first = false; - await new Promise((resolve, reject) => { - res.write(prefix + entity, 'utf8', err => { - if (err) { - reject(err); - } else { - resolve(err); - } + const needsDrain = !res.write(prefix + entity, 'utf8'); + if (needsDrain) { + await new Promise(resolve => { + const cont = () => { + res.off('drain', cont); + res.off('close', cont); + resolve(); + }; + res.on('drain', cont); + res.on('close', cont); }); - }); + } } res.end(`${first ? '[' : ''}]${trailing}`); }