(url, ms = 3000)
| 890 | } |
| 891 | |
| 892 | function fetchJSONWithTimeout(url, ms = 3000) { |
| 893 | const ctrl = new AbortController(); |
| 894 | const tid = setTimeout(() => ctrl.abort(), ms); |
| 895 | return fetch(url, { credentials: 'include', signal: ctrl.signal }) |
| 896 | .then(r => r.ok ? r.json() : { folders: 0, files: 0, __fr_err: 1 }) |
| 897 | .catch(() => ({ folders: 0, files: 0, __fr_err: 1 })) |
| 898 | .finally(() => clearTimeout(tid)); |
| 899 | } |
| 900 | const MAX_CONCURRENT_COUNT_REQS = 6; |
| 901 | let _activeCountReqs = 0; |
| 902 | const _countReqQueue = []; |