task.js 612 B

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