소스 검색

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

龚成明 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)
   }
 }