From 4d6b25bf2f8ef337bf7bf9b22a31b0bade6abd18 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期一, 24 八月 2026 09:26:12 +0800
Subject: [PATCH] opo维护

---
 utils/request.js |   38 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 deletions(-)

diff --git a/utils/request.js b/utils/request.js
index 38fcda0..5297f3a 100644
--- a/utils/request.js
+++ b/utils/request.js
@@ -13,7 +13,7 @@
     uni.showToast({ title: message, icon: "none" });
   }
 };
-console.log(baseURL,'baseURL');
+console.log(baseURL,'baseURL1');
 
 const config = {
   baseURL: baseURL,
@@ -143,14 +143,50 @@
   return data;
 };
 
+// 鎸傝捣璇锋眰闃熷垪锛氳璇佹湭瀹屾垚鏃舵殏瀛樿姹傦紝瀹屾垚鍚庢壒閲忛噸璇�
+const pendingQueue = []
+let pendingTimer = null
+
+function flushPending() {
+  clearInterval(pendingTimer)
+  pendingTimer = null
+  const q = pendingQueue.splice(0)
+  q.forEach(({ options, resolve, reject }) => {
+    request(options).then(resolve).catch(reject)
+  })
+}
+
+function pendRequest(options) {
+  return new Promise((resolve, reject) => {
+    pendingQueue.push({ options, resolve, reject })
+    if (!pendingTimer) {
+      const maxWait = 15000
+      const startTime = Date.now()
+      pendingTimer = setInterval(() => {
+        if (!uni.__authPending || Date.now() - startTime > maxWait) {
+          flushPending()
+        }
+      }, 100)
+    }
+  })
+}
+
 const request = async (options) => {
   try {
+    // 鉁� 璁よ瘉鎸傝捣妫�鏌ュ繀椤诲湪 URL 鎷兼帴涔嬪墠
+    //    淇濆瓨鍘熷 options锛岄噸璇曟椂閬垮厤 baseURL 鍙犲姞
+    const token = uni.getStorageSync("token");
+    if (!token && uni.__authPending && !isInWhiteList(options.url)) {
+      return pendRequest({ ...options });  // 浼犲叆鍘熷 options 鐨勫壇鏈�
+    }
+
     options = {
       ...config,
       ...options,
       url: config.baseURL + options.url,
       header: { ...config.header, ...options.header },
     };
+
     options = await requestInterceptor(options);
     return new Promise((resolve, reject) => {
       uni.request({

--
Gitblit v1.9.3