demo.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. const tagInfo = '[/libs/model/demo.js]:';
  2. import to from 'await-to-js';
  3. import urls from '@/libs/net/urls';
  4. import {request} from "@/libs/net/request.js";
  5. /**
  6. * 模型通过单例模式实现,不要直接实例化,要么调用静态方法,要么通过 getInstance()获取引用
  7. */
  8. class Demo {
  9. // ES6类的静态方法(只能直接由类名调用的方法):static getInstance
  10. // ES6类的静态属性:直接挂载在类名上的方法,如:Db.instance()
  11. static instance;
  12. initFinish = false;
  13. //=======================基础方法====================
  14. /**
  15. * 获取列表方法(具体参数返回,可根据实际业务修改)
  16. * @returns
  17. */
  18. async getList () {
  19. let url = urls.demoIndex;
  20. let param = {};
  21. let [err, res] = await to(request(url, param));
  22. if (err) {
  23. return err;
  24. }
  25. return res;
  26. }
  27. //= ===================数据计算=======================
  28. //= ===================END 数据计算========================
  29. //= ====================私有方法=====================
  30. /**
  31. *
  32. * @returns 获取引用
  33. */
  34. static getInstance () {
  35. if (!Demo.instance) {
  36. Demo.instance = new Demo();
  37. return Demo.instance;
  38. }
  39. return Demo.instance;
  40. }
  41. /**
  42. * 构造函数
  43. */
  44. constructor() {
  45. this.init();
  46. }
  47. /**
  48. * 类实例初始化
  49. */
  50. async init () {
  51. console.log(tagInfo + '初始化');
  52. this.initFinish = false;
  53. //如果有初始化业务,就写在这里
  54. this.initFinish = true;
  55. console.log(tagInfo + '初始化完成');
  56. }
  57. //= ====================END 私有方法=====================
  58. }
  59. export default Demo;