task.js 533 B

1234567891011121314151617181920212223242526272829
  1. const logger = require('../kit/logger-kit')
  2. module.exports = class Task {
  3. constructor(context, delayTime, initFun, onTickFun) {
  4. this.context = context
  5. this.delayTime = delayTime
  6. this.init = initFun
  7. this.onTick = onTickFun
  8. }
  9. async Start() {
  10. const task = this
  11. await this.init()
  12. this.interval = setInterval(() => {
  13. try {
  14. task.onTick(task.context)
  15. } catch (e) {
  16. logger.error(e)
  17. }
  18. }, this.delayTime)
  19. }
  20. async Stop() {
  21. clearInterval(this.interval)
  22. }
  23. }