From d55a8fc5110750bc4f8bb1dae8a4786d3930a1ca Mon Sep 17 00:00:00 2001 From: Jelle De Loecker Date: Thu, 25 Jul 2024 11:53:05 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Correctly=20queue=20follow-up=20?= =?UTF-8?q?getScript=20requests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/client/scene.js | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/lib/client/scene.js b/lib/client/scene.js index 4b7b392..60b7805 100644 --- a/lib/client/scene.js +++ b/lib/client/scene.js @@ -2317,7 +2317,7 @@ Scene.setMethod(function _setPageTitle(title) { * * @author Jelle De Loecker * @since 1.0.0 - * @version 2.3.15 + * @version 2.4.0 * * @param {Object} options * @param {Boolean} force Force a reload if already loaded? @@ -2347,11 +2347,29 @@ Scene.setMethod(function getScript(options, force) { let tasks = []; for (let entry of path) { - let task_pledge = that.getScript(entry, force); - if (task_pledge && !task_pledge.is_done) { + // If this is the first script, already start getting it now + if (!tasks.length) { + let task_pledge = that.getScript(entry, force); + + if (!task_pledge || task_pledge.is_done) { + continue; + } + tasks.push(task_pledge); + continue; } + + // Other scripts should be queued + tasks.push(next => { + let task_pledge = that.getScript(entry, force); + + if (!task_pledge || task_pledge.is_done) { + return next(); + } + + Classes.Pledge.Swift.done(task_pledge, next); + }); } if (!tasks.length) {