globalData.js 880 B

123456789101112131415161718192021222324252627282930313233343536
  1. const {
  2. isDefined,
  3. isString,
  4. isObject,
  5. } = require('./base.js');
  6. const app = getApp();
  7. const updataGlobalData = (key, value) => {
  8. const globalData = app.globalData;
  9. // 校验 globalData
  10. if (!globalData) {
  11. return console.error('[$updateGlobalData] globalData Not Find!'); // eslint-disable-line
  12. }
  13. // 校验: 操作字段
  14. if (!isString(key) || key === '') {
  15. return console.error('[$updateGlobalData] key 不能为空!'); // eslint-disable-line
  16. }
  17. // 取出已有信息
  18. const data = globalData[key] || {};
  19. // 更新缓存
  20. if (value && isObject(value) && isObject(data)) {
  21. // Object合并第一层
  22. globalData[key] = Object.assign({}, data, value);
  23. } else if (isDefined(value)) {
  24. // 其他非undefined数据直接覆盖
  25. globalData[key] = value;
  26. }
  27. return globalData[key];
  28. };
  29. module.exports = {
  30. app,
  31. updataGlobalData,
  32. };