Преглед на файлове

任务的基本工作方式及异常处理

龚成明 преди 2 години
родител
ревизия
159754d2cd
променени са 1 файла, в които са добавени 12 реда и са изтрити 8 реда
  1. 12 8
      scripts/task.js

+ 12 - 8
scripts/task.js

@@ -1,8 +1,8 @@
 const logger = require('../kit/logger-kit')
-const TimeKit = require('../kit/time-kit')
 
 module.exports = class Task {
-  constructor(delayTime, initFun, onTickFun) {
+  constructor(context, delayTime, initFun, onTickFun) {
+    this.context = context
     this.delayTime = delayTime
 
     this.init = initFun
@@ -10,16 +10,20 @@ module.exports = class Task {
   }
 
   async Start() {
+    const task = this
+
     await this.init()
 
-    while (true) {
+    this.interval = setInterval(() => {
       try {
-        await this.onTick()
-
-        await TimeKit.sleep(this.delayTime)
+        task.onTick(task.context)
       } catch (e) {
-        logger.log(e)
+        logger.error(e)
       }
-    }
+    }, this.delayTime)
+  }
+
+  async Stop() {
+    clearInterval(this.interval)
   }
 }