From c325a4b1229c3733fd63c35f8a076f7153e87d88 Mon Sep 17 00:00:00 2001 From: Daniel <82655381+djs113@users.noreply.github.com> Date: Thu, 23 Dec 2021 22:58:10 +0530 Subject: [PATCH] Adding error handling inside stream end callback (#3967) * Adding error handling inside end callback for response streams * Updating error handling in stream end callback * Update http.js Co-authored-by: Jay --- lib/adapters/http.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/adapters/http.js b/lib/adapters/http.js index 780f7541c6..a3669de08e 100755 --- a/lib/adapters/http.js +++ b/lib/adapters/http.js @@ -297,15 +297,18 @@ module.exports = function httpAdapter(config) { }); stream.on('end', function handleStreamEnd() { - var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); - if (config.responseType !== 'arraybuffer') { - responseData = responseData.toString(config.responseEncoding); - if (!config.responseEncoding || config.responseEncoding === 'utf8') { - responseData = utils.stripBOM(responseData); + try { + var responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); + if (config.responseType !== 'arraybuffer') { + responseData = responseData.toString(config.responseEncoding); + if (!config.responseEncoding || config.responseEncoding === 'utf8') { + responseData = utils.stripBOM(responseData); + } } + response.data = responseData; + } catch (err) { + reject(enhanceError(err, config, err.code, response.request, response)); } - - response.data = responseData; settle(resolve, reject, response); }); }