做一个简单的执行跟踪记录

最近要做一个各种连续操作的功能,步骤比较多,想要看一下执行情况,另外顺便看看执行时间。

一开始是直接手撸的,但是代码多了就很难看,也不好维护。于是做了一个小功能。

记录格式

{
      title: '好像没什么用的标题',
      msg: `开始叙述`,
      t1: window.performance.now(), 
      t2: '记录时间'.
      item: ['做个子记录']
    }

结构比较简单,主要是两个时间,一个是开始时间,一个是结束时间,然后就是叙述执行步骤。

然后就是建立数组存放,然后顺便写一个函数管理一下。

实现代码

/**
 * 一个简单的记录执行过程和使用时间的 log
 */
class ShowLog {
  constructor () {
    this.info = reactive([])
  }

  newLog (title, count = 0) {
    this.info.push({
      title,
      msg: `<br>开始添加【${title}】...`,
      t1: window.performance.now(),
      t2: 0,
      item: []
    })
    if (count > 0) {
      this.info[this.info.length - 1].msg = `<br>开始添加【${title}】,共${count}个...`
    }
    return this.info.length - 1
  }

  start (msg = null, index = this.info.length - 1) {
    const _info = this.info[index]
    _info.t1 = window.performance.now()
    _info.msg += `<br>&nbsp;&nbsp;开始添加【${msg}】...`
  }

  end (id, index = this.info.length - 1) {
    const _info = this.info[index]
    _info.t2 = window.performance.now()
    _info.msg += `添加成功!ID:${id}。用时:${_info.t2 - _info.t1}<br>`
    console.log(`===添加【${_info.title}】成功,表ID:${id}`)
  }

  clear () {
    this.info.length = 0
  }
}

比较简陋,想做一个子记录的,但是还没有想好。
好多功能都写死了,比如只是记录添加的情况,修改和删除都没关,先暂时这么用。

使用方法

// 进度提示信息
  const myLog = new ShowLog()

   myLog.newLog('表')
   let res = await service(tableId, 10, moduleInfo.tableModal, -2, 'meta')
   myLog.end(res.newId)

先做一个实例,然后new一条记录,其实就是加一个数组。
然后开始执行程序,等待结束后开始统计。

因为回调地狱实在太难了,所以用 await 的方式假装成顺序执行。

直到遇到了foreach,和想象的还是不一样。

    cols.forEach(async (col, index) => {
      col.tableId = intTableId
      col.columnId = intTableId + (index + 1) * 10
      col.canNull = 0
      col.columnKind = index === 0 ? 11 : 14
      myLog.start(col.colName, logIndex)
      res = await service(columnId, 10, col, -2, 'meta')
      myLog.end(res.newId, logIndex)
    })

本来以为可以在foreach内部等待呢,结果还是先循环完了,然后再等待。

这样的话,要么试试for循环,要么试试子记录。明天再看吧。

执行情况

开始添加【表】...添加成功!ID:10。用时:36.06000001356006

开始添加【字段】,共4个...  // 子记录没有对上。
  开始添加【col_11】...
  开始添加【col_21】...
  开始添加【col_31】...
  开始添加【col_41】...添加成功!ID:24。用时:137.21499999519438
添加成功!ID:25。用时:220.25499999243766
添加成功!ID:26。用时:254.8399999793619
添加成功!ID:27。用时:289.53999999770895

开始添加【模块菜单】...添加成功!ID:10。用时:165.26000000862405

开始添加【列表的分页】...添加成功!ID:10。用时:154.50999999325722

开始添加【列表的按钮】...
  开始添加【添加】...
  开始添加【修改】...
  开始添加【删除】...添加成功!ID:28。用时:97.73999999742955
添加成功!ID:29。用时:131.25000000558794
添加成功!ID:30。用时:253.2399999909103

开始添加【查询】...添加成功!ID:10。用时:159.71999999601394

  开始添加【查询字段:col_11】...
  开始添加【查询字段:col_21】...
  开始添加【查询字段:col_31】...
  开始添加【查询字段:col_41】...添加成功!ID:24。用时:125.05000000214204
添加成功!ID:25。用时:162.320000003092
添加成功!ID:26。用时:275.0600000144914
添加成功!ID:27。用时:316.6100000087172

开始添加【列表】...添加成功!ID:10。用时:189.93999998178333

  开始添加【列表字段:col_11】...
  开始添加【列表字段:col_21】...
  开始添加【列表字段:col_31】...
  开始添加【列表字段:col_41】...添加成功!ID:24。用时:150.10999998729676
添加成功!ID:25。用时:185.95499999355525
添加成功!ID:26。用时:367.2549999896437
添加成功!ID:27。用时:409.14499998278916

开始添加【表单】...添加成功!ID:10。用时:206.70000000996515

  开始添加【表单字段:col_11】...
  开始添加【表单字段:col_21】...
  开始添加【表单字段:col_31】...
  开始添加【表单字段:col_41】...添加成功!ID:24。用时:232.0049999980256
添加成功!ID:25。用时:269.5300000193529
添加成功!ID:26。用时:298.90000002318993
添加成功!ID:27。用时:336.7650000145659

开始添加【后端service】...添加成功!ID:8。用时:238.51499997545034

开始添加【后端 action】...
  开始添加【添加】...
  开始添加【修改】...
  开始添加【删除】...
  开始添加【获取】...
  开始添加【查询】...
  开始添加【获取全部数据】...添加成功!ID:43。用时:134.85499998182058
添加成功!ID:44。用时:198.4449999872595
添加成功!ID:45。用时:235.93499997537583
添加成功!ID:46。用时:313.46999999368563
添加成功!ID:47。用时:357.6699999975972
添加成功!ID:48。用时:398.1349999960512

开始添加【后端model】...添加成功!ID:8。用时:259.1949999909848

基本就是这样。
好像应该加个 try,我不太喜欢加 try,因为不会用。。。

另外计时不准,for 循环并没有等待。

另外这是我写代码写的最长的一次,居然有四百多行,还是重构后的。不重构的话,实在太累。现在能好一点。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容