From 0191cdf480cb8943b3dbb8239022bec4029decbc Mon Sep 17 00:00:00 2001 From: louielang Date: Tue, 19 Apr 2022 10:37:56 +0800 Subject: [PATCH] fix ffmpeg.exit() --- src/createFFmpeg.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/createFFmpeg.js b/src/createFFmpeg.js index c5425ce..f4ba9f2 100644 --- a/src/createFFmpeg.js +++ b/src/createFFmpeg.js @@ -21,6 +21,7 @@ module.exports = (_options = {}) => { let Core = null; let ffmpeg = null; let runResolve = null; + let runReject = null; let running = false; let progress = optProgress; const detectCompletion = (message) => { @@ -126,9 +127,10 @@ module.exports = (_options = {}) => { throw Error('ffmpeg.wasm can only run one command at a time'); } else { running = true; - return new Promise((resolve) => { + return new Promise((resolve, reject) => { const args = [...defaultArgs, ..._args].filter((s) => s.length !== 0); runResolve = resolve; + runReject = reject; ffmpeg(...parseArgs(Core, args)); }); } @@ -178,10 +180,18 @@ module.exports = (_options = {}) => { throw NO_LOAD; } else { running = false; - Core.exit(1); - Core = null; - ffmpeg = null; - runResolve = null; + try { + Core.exit(1); + } catch (err) { + if (runReject) { + runReject(err); + } + } finally { + Core = null; + ffmpeg = null; + runResolve = null; + runReject = null; + } } };