From 2e361d40e8a86d239c34091b16215ab288be7c1d Mon Sep 17 00:00:00 2001 From: tianhao Date: Tue, 16 Jun 2026 12:40:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(#2):=20Promise=E6=B3=84=E6=BC=8F=20?= =?UTF-8?q?=E2=80=94=20confirm/prompt=20=E6=B7=BB=E5=8A=A010=E7=A7=92?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E8=B6=85=E6=97=B6=EF=BC=8C=E9=98=B2=E6=AD=A2?= =?UTF-8?q?=E6=B0=B8=E4=B8=8Dresolve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/core.js b/src/core.js index 39bbfc2..cf39a3f 100644 --- a/src/core.js +++ b/src/core.js @@ -746,6 +746,10 @@ const meToast = { } return new Promise((resolve) => { + let resolved = false; + const safeResolve = (val) => { if (!resolved) { resolved = true; clearTimeout(safetyTimeout); resolve(val); } }; + const safetyTimeout = setTimeout(() => safeResolve(false), 10000); + const t = this._emit({ ...opts, type: opts.type || 'warning', @@ -764,14 +768,14 @@ const meToast = { if (confirmBtn) { confirmBtn.addEventListener('click', () => { t.close(); - resolve(true); + safeResolve(true); }); } if (cancelBtn) { cancelBtn.addEventListener('click', () => { t.close(); - resolve(false); + safeResolve(false); }); } }, 0); @@ -791,6 +795,10 @@ const meToast = { } return new Promise((resolve) => { + let resolved = false; + const safeResolve = (val) => { if (!resolved) { resolved = true; clearTimeout(safetyTimeout); resolve(val); } }; + const safetyTimeout = setTimeout(() => safeResolve(null), 10000); + const t = this._emit({ ...opts, type: opts.type || 'info', @@ -813,7 +821,7 @@ const meToast = { input.addEventListener('keydown', (e) => { if (e.key === 'Enter') { t.close(); - resolve(input.value); + safeResolve(input.value); } }); } @@ -821,14 +829,14 @@ const meToast = { if (submitBtn) { submitBtn.addEventListener('click', () => { t.close(); - resolve(input?.value || null); + safeResolve(input?.value || null); }); } if (cancelBtn) { cancelBtn.addEventListener('click', () => { t.close(); - resolve(null); + safeResolve(null); }); } }, 0);