UNPKG

press-next

Version:

Vue3 组件库,支持 Composition API

42 lines (33 loc) 970 B
let handleList: Array<{ url: string; reqData: Record<string, any>; handle: Function; }> = []; // 请求列表 export function filterSameRequest({ url, reqData, handle, }: { url: string; reqData: Record<string, any>; handle: Function; }) { const sameHandle = handleList.find(item => item.url === url && JSON.stringify(item.reqData) === JSON.stringify(reqData)); if (sameHandle) { // 遇到相同请求直接返回之前请求的promise console.log('存在重复请求,直接返回'); return sameHandle.handle; } console.log('不存在重复请求'); const promise = handle(); // const finallyCb = promise.finally; promise.finally(() => { // finallyCb(); console.log('[filterSameRequest] finally'); handleList = handleList.filter(item => item.url !== url && JSON.stringify(item.reqData) !== JSON.stringify(reqData)); }); handleList.push({ url, reqData, handle: promise }); return promise; }