index.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import config from '../config/index'
  2. export class Cache {
  3. constructor() {
  4. this.radix = 1000 // 如果该值为 1000 则是毫秒级单位,1 则是秒级单位
  5. }
  6. /**
  7. * 增加数据
  8. * @param {*} key 键值
  9. * @param {*} value 键名
  10. * @param {*} duration 有效期,0永久有效
  11. */
  12. setItem(key, value, duration) {
  13. let data = {
  14. value: value,
  15. expiryTime:
  16. !duration || isNaN(duration)
  17. ? 0
  18. : Date.parse(new Date()) + parseInt(duration, 10) * this.radix
  19. }
  20. try {
  21. uni.setStorageSync(`${config.storePrefix}${key}`, JSON.stringify(data))
  22. } catch (e) {
  23. // error
  24. }
  25. }
  26. /**
  27. * 查询数据
  28. * @param {*} key 键值
  29. */
  30. getItem(key) {
  31. try {
  32. const data = uni.getStorageSync(`${config.storePrefix}${key}`)
  33. if (data) {
  34. if (!data || data === 'null') {
  35. return null
  36. }
  37. let now = Date.parse(new Date())
  38. let obj
  39. try {
  40. obj = JSON.parse(data)
  41. } catch (e) {
  42. return null
  43. }
  44. if (obj.expiryTime === 0 || obj.expiryTime > now) {
  45. return obj.value
  46. }
  47. return null
  48. }
  49. } catch (e) {
  50. // error
  51. }
  52. }
  53. /**
  54. * 删除数据
  55. * @param {*} key 键值
  56. */
  57. removeItem(key) {
  58. try {
  59. uni.removeStorageSync(`${config.storePrefix}${key}`)
  60. } catch (e) {
  61. // error
  62. }
  63. }
  64. /**
  65. * 清空数据
  66. */
  67. clear() {
  68. try {
  69. uni.clearStorageSync()
  70. } catch (e) {
  71. // error
  72. }
  73. }
  74. }