Имеется
socket.io server
и класс
Random
class Random {
constructor(timer) {
this.timer = timer
this.status = 0
}
async setStatus() {
const interval = setInterval(()=> {
this.timer -= 1
if(this.timer <= 0) {
this.status = 1
}
}, 1000)
}
}
Код Socket.io server
const Random = require('../Random').Random
const chanels = {}
const timers = [{timer: 20, name: "chanel1"},{timer: 400, "chanel2"}]
timers.map((timer,id) => chanels[timer.name] = new Random(timer.time))
socket.on('startTimer', async (name, callback) => {
await chanels[name].setStatus()
})
Проблема:
Я хочу выполнять определенное событие на socket-сервере в том случае, если
this.status = 1.
Т.е мне нужно отслеживать смену
this.status
и оповещать об этом socket часть
Вопрос:
Каким образом это можно реализовать? Пытался сделать через
setInterval
на стороне сокета запрашивая каждую секунду
this.state,
но на мой взгляд это крайне плохое решение. Наткнулся на паттерн observer, но возможна ли его реализация в моем случае?