// 地址JSON
const appArea = () => {
  let obj = "";
  console.log("---appArea");
  return new Promise(async (response, reject) => {
    await wx.request({
      url: `https://cdn.mayi888.com/static/js/app.area.json`,
      success: res => {
        obj = res.data;
        response(obj);
        console.log(obj, "--------appArea-success");
      },
      fail: err => {
        console.log(err, "-------err");
        reject(err);
      }
    });
  });
};
/*函数节流*/
function throttle(fn, interval) {
  var enterTime = 0; //触发的时间
  var gapTime = interval || 300; //间隔时间,如果interval不传,则默认300ms
  return function() {
    var context = this;
    var backTime = new Date(); //第一次函数return即触发的时间
    if (backTime - enterTime > gapTime) {
      fn.call(context, arguments);
      enterTime = backTime; //赋值给第一次触发的时间,这样就保存了第二次触发的时间
    }
  };
}

/*函数防抖*/
function debounce(fn, interval) {
  console.log("防抖抖~~~");
  var timer;
  var gapTime = interval || 1000; //间隔时间,如果interval不传,则默认1000ms
  return function() {
    clearTimeout(timer);
    var context = this;
    var args = arguments; //保存此处的arguments,因为setTimeout是全局的,arguments不是防抖函数需要的。
    timer = setTimeout(function() {
      fn.call(context, args);
    }, gapTime);
  };
}

export default {
  throttle,
  debounce,
  appArea
};