微信小程序中,一个时钟案例中setTimeout是如何更新时间的?

真心感谢能够帮忙解答我的疑惑朋友,在这里先谢过了 /抱拳


刚开始学习微信小程序不久,在一个用 .wxs 格式化日期的案例中,突发奇想希望达到自动更新秒数的效果,结合网上借鉴的内容,产生以下三段代码,但不太明白其运行流程,希望解决以下问题:

--------

1.三个文件中代码运行的先后顺序?

2.js文件中自定义函数timing中second变量并不存于data中,它到底来自哪里?

3.js文件中自定义函数timing中 e.timing(e) 是什么意思?更新自己么?

--------

js文件:

Page({


  data: {

  },


  onLoad: function (options) {
    this.timing(this)
  },


  timing: function (e) {
    var time = setTimeout(function () {
      e.setData({second: e.data.second + 1});
      e.timing(e);
    } , 1000)
  },

})

wxs文件:

var timeFormat = function(){
  var now = getDate();

  hh = now.getHours();
  mm = now.getMinutes();
  ss = now.getSeconds();

  timeStr = hh + ":" + mm + ":" + ss
  return timeStr;
}

module.exports = {
  timeFormat : timeFormat,
}

.wxml文件:

<wxs src="tools.wxs" module="tools"/>

<view>
  <view>{{tools.dateFormat()}}</view>
  <view>{{tools.timeFormat()}}</view>
</view>

--------

##代码效果:

一个数字时钟会自动更新,比如第一秒是这样:

20:19:59

下一秒就会变成:

20:20:00

https://blog.csdn.net/weixinmp2019/article/details/91052589