From 8d7c1fbf537b0641e5946ef49108fc042e07d2da Mon Sep 17 00:00:00 2001 From: sigoden <sigoden@gmail.com> Date: Thu, 1 Jun 2023 21:32:22 +0800 Subject: [PATCH] fix: ui set default max uploading to 1 (#220) --- assets/index.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/assets/index.js b/assets/index.js index 56c400c..dfbe98a 100644 --- a/assets/index.js +++ b/assets/index.js @@ -22,6 +22,8 @@ * @property {string} editable */ +var DUFS_MAX_UPLOADINGS = 1; + /** * @type {DATA} DATA */ @@ -152,7 +154,6 @@ class Uploader { } ajax() { - Uploader.runnings += 1; const url = newUrl(this.name); this.lastUptime = Date.now(); const ajax = new XMLHttpRequest(); @@ -187,13 +188,13 @@ class Uploader { complete() { this.$uploadStatus.innerHTML = `✓`; - Uploader.runnings -= 1; + Uploader.runnings--; Uploader.runQueue(); } fail() { this.$uploadStatus.innerHTML = `✗`; - Uploader.runnings -= 1; + Uploader.runnings--; Uploader.runQueue(); } } @@ -211,16 +212,14 @@ Uploader.queues = []; Uploader.runQueue = async () => { - if (Uploader.runnings > 2) return; + if (Uploader.runnings >= DUFS_MAX_UPLOADINGS) return; + if (Uploader.queues.length == 0) return; + Uploader.runnings++; let uploader = Uploader.queues.shift(); - if (!uploader) return; if (!Uploader.auth) { Uploader.auth = true; - try { - await login(); - } catch { - Uploader.auth = false; - } + const success = await login(true); + Uploader.auth = !!success; } uploader.ajax(); } @@ -662,6 +661,7 @@ async function login(alert = false) { document.querySelector(".login-btn").classList.add("hidden"); $userBtn.classList.remove("hidden"); $userBtn.title = ""; + return true; } catch (err) { let message = `Cannot login, ${err.message}`; if (alert) {