Мне потребовалось многопоточный цикл. И кажется нашел решение и он прекрасно работает.
Терь можно создать много цикл с разным интервалом.
Но хотел услышать от людей =)
Класс 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')