特易招(招聘小程序)-政府项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
907 B

  1. import Vue from 'vue'
  2. /**
  3. * 将一个请求分组
  4. *
  5. * @param getPromise 传入一个可以获取到Promise对象的方法
  6. * @param groupId 分组ID如果不传或者为空则不分组
  7. * @param expire 过期时间默认 半分钟
  8. */
  9. export function httpGroupRequest(getPromise, groupId, expire = 1000 * 30) {
  10. if (groupId == null || groupId === '') {
  11. console.log("--------popup----------getFrom DB-------with---no--groupId ")
  12. return getPromise()
  13. }
  14. if (Vue.ls.get(groupId)) {
  15. console.log("---------popup--------getFrom Cache--------groupId = " + groupId)
  16. return Promise.resolve(Vue.ls.get(groupId));
  17. } else {
  18. console.log("--------popup----------getFrom DB---------groupId = " + groupId)
  19. }
  20. // 还没有发出请求,就发出第一次的请求
  21. return getPromise().then(res => {
  22. Vue.ls.set(groupId, res, expire);
  23. return Promise.resolve(res);
  24. })
  25. }