()
| 1202 | } |
| 1203 | |
| 1204 | async function processDeleteQueue() { |
| 1205 | if (!isBatchDeleting || isDeletePaused) return; |
| 1206 | if (batchQueue.length === 0) { |
| 1207 | finishBatchDelete(); |
| 1208 | return; |
| 1209 | } |
| 1210 | const chunk = batchQueue.splice(0, BATCH_SIZE); |
| 1211 | const results = await clearOnlineCacheBatch(chunk); |
| 1212 | if (results && results.status === 'success' && results.results) { |
| 1213 | Object.entries(results.results).forEach(([token, result]) => { |
| 1214 | if (result.status !== 'success') { |
| 1215 | deleteFailed.set(token, result.error || '清理失败'); |
| 1216 | } else { |
| 1217 | deleteFailed.delete(token); |
| 1218 | } |
| 1219 | }); |
| 1220 | } else { |
| 1221 | chunk.forEach(token => deleteFailed.set(token, '请求失败')); |
| 1222 | } |
| 1223 | deleteProcessed += chunk.length; |
| 1224 | updateDeleteButton(); |
| 1225 | updateBatchProgress(); |
| 1226 | setTimeout(() => { |
| 1227 | processDeleteQueue(); |
| 1228 | }, 300); |
| 1229 | } |
| 1230 | |
| 1231 | function finishBatchDelete() { |
| 1232 | isBatchDeleting = false; |
no test coverage detected