11 changed files with 102 additions and 48 deletions
@ -1,28 +1,46 @@ |
|||||
|
/** |
||||
|
* 等待token执行api |
||||
|
* 没有token 就延时执行自己 直到有了token在请求 |
||||
|
* @param {function} requestFn 执行请求的函数 |
||||
|
*/ |
||||
|
export const waitTokenRequest = requestFn => { |
||||
|
if (!requestFn || typeof requestFn !== 'function') throw new Error(`requestFn must be a function`); |
||||
|
if (uni.$t.storage.getStorageSync(uni.$t.app.tokenKey)) { |
||||
|
requestFn(); |
||||
|
} else { |
||||
|
setTimeout(() => waitTokenRequest(requestFn), 10); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
export default { |
export default { |
||||
/** |
/** |
||||
* 获取项目列表 |
* 获取项目列表 |
||||
* @param {number} startTime 起始时间 |
* @param {number} startTime 起始时间 |
||||
* @param {number} endTime 截止时间 |
* @param {number} endTime 截止时间 |
||||
*/ |
*/ |
||||
getProjects(startTime, endTime) { |
getProjects(startTime, endTime, fn) { |
||||
return new Promise((resolve, reject) => { |
let remote = false; |
||||
let remote = false; |
// 有缓存 且 服务端数据未返回 就先返回缓存
|
||||
// 有缓存 且 服务端数据未返回 就先返回缓存
|
uni.$t.cache |
||||
uni.$t.cache |
.getProjectsByDay(startTime, endTime) |
||||
.getProjects(startTime, endTime) |
.then(data => { |
||||
.then(data => { |
// console.log('cache data: ', data);
|
||||
!remote && resolve(data); |
!remote && fn(null, data); |
||||
}) |
}) |
||||
.catch(err => !remote && reject(err)); |
.catch(err => !remote && fn(err)); |
||||
|
|
||||
|
waitTokenRequest(() => { |
||||
// 拿到api数据后 再用api的数据
|
// 拿到api数据后 再用api的数据
|
||||
uni.$u.api |
uni.$u.api |
||||
.getProjects(startTime, endTime) |
.getProjects(startTime, endTime) |
||||
.then(data => { |
.then(data => { |
||||
|
// console.log('api data: ', data);
|
||||
remote = true; |
remote = true; |
||||
resolve(data); |
fn(null, data); |
||||
|
// 存api到cache里
|
||||
|
uni.$t.cache.putProjects(data); |
||||
}) |
}) |
||||
.catch(err => reject(err)); |
.catch(err => fn(err)); |
||||
}); |
}); |
||||
}, |
}, |
||||
}; |
}; |
||||
|
Loading…
Reference in new issue