From e1c5487ba422175870162735f2d05ee7127ee5a6 Mon Sep 17 00:00:00 2001 From: Jonathan Rainville Date: Wed, 13 Jun 2018 14:37:15 -0400 Subject: [PATCH] fix callback already called on file download fail --- lib/core/file.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/core/file.js b/lib/core/file.js index 65e5e634..bc97ddaa 100644 --- a/lib/core/file.js +++ b/lib/core/file.js @@ -73,15 +73,25 @@ class File { }); }, function downloadTheFile(next) { + let alreadyCalledBack = false; + function doCallback(err) { + if (alreadyCalledBack) { + return; + } + alreadyCalledBack = true; + next(err); + } request(url) .on('response', function (response) { if (response.statusCode !== 200) { - next('Getting file returned code ' + response.statusCode); + doCallback('Getting file returned code ' + response.statusCode); } }) - .on('error', next) + .on('error', doCallback) .pipe(fs.createWriteStream(filename)) - .on('finish', next); + .on('finish', () => { + doCallback(); + }); }, function readFile(next) { fs.readFile(filename, next);