import {normalCallPost} from './index';

export default class Cache {
  constructor(fecthUrl, durtion) {
    this.cache = {
      time: 0,
      data: [],
    };
    this.durtion = durtion;
    this.fecthUrl = fecthUrl;
  }
  async getData() {
    const currTime = new Date().getTime();
    // 缓存过期，重新拉取
    if(currTime - this.cache.time > this.durtion * 1000) {
      const data = await this.fecthData();
      this.setData(data);
      return data;
    }
    return this.cache.data
  }
  setData(data) {
    this.cache.data = data;
    this.cache.time = new Date().getTime();
  }
  fecthData() {
    return new Promise(async (resolve)=>{
      const {data} = await normalCallPost(this.fecthUrl, {pageInfo: {prePageResult: -1}});
      resolve(data.result);
    })
  }
}