Показать сообщение отдельно
  #1 (permalink)  
Старый 13.09.2020, 18:10
Новичок на форуме
Отправить личное сообщение для jCtapuk Посмотреть профиль Найти все сообщения от jCtapuk
 
Регистрация: 13.09.2020
Сообщений: 2

Как вам Thread?
Мне потребовалось многопоточный цикл. И кажется нашел решение и он прекрасно работает.

Терь можно создать много цикл с разным интервалом.
Но хотел услышать от людей =)

Класс Thread (Сырое конечно)
abstract class Thread {
  private running: boolean = false;

  static sleep(time: number = 1000) {
    return new Promise((resolve) => {
      setTimeout(resolve, time);
    });
  }

  start() {
    if (this.running) return;
    this.running = true
    this.run()
  }

  stop() {
    this.running = false
  }

  get isRunning() {
    return this.running;
  }

  abstract async run(): Promise<void>;
}


Пример рабочий код:
class Game extends Thread {
  async run() {
    while (this.isRunning) {
      console.log('Game Update')
      await Thread.sleep(1000) // 1 sec
    }
  }
}

class Test extends Thread {
  async run() {
    while (this.isRunning) {
      console.log('Test Update')
      await Thread.sleep(5000) // 5 sec
    }
  }
}

new Game().start()
new Test().start()
console.log('run')
Ответить с цитированием