xyligan
Паркетный пол трещит под моей крышкой черепной
- Сообщения
- 900
- Реакции
- 433
Доброго времени суток, дорогие участники форума!
Пишу модуль для npm. Возникла некая проблема с подсчётом времени. Может кто подскажет, как правильнее его посчитать, т.к. действие, которое должно выполняться через время указанное пользователем, выполняется через 5 секунд.
Пишу модуль для npm. Возникла некая проблема с подсчётом времени. Может кто подскажет, как правильнее его посчитать, т.к. действие, которое должно выполняться через время указанное пользователем, выполняется через 5 секунд.
async _init() - функция запуска бота + интервала.get remainingTime() - функция подсчёта времени через которое будет выполняться действие (заданное пользователем время[endAt] - нынешнее время[Date.now()])._checkCase() - функция, выполняющая действие при заданном условии(которое должно быть таким: если время заданное пользователем прошло, то будет выполняться действие, но в итоге проходит 5 секунд и действие выполняется)
JavaScript:
async _init() {
this.cases = await this._initStorage();
setInterval(() => {
if (this.client.readyAt) {
this._checkCase.call(this);
}
}, 5000);
this.ready = true;
}
JavaScript:
get remainingTime() {
return this.endAt - Date.now();
}
JavaScript:
_checkCase() {
if (this.cases.length <= 0) return;
this.cases.forEach(async caseData => {
let caseObj = new Case(this, caseData);
if (caseObj.ended) return;
if (!caseObj.type) return;
if (caseObj.remainingTime <= 0) {
this.end(caseObj.id);
}
await caseObj.fetchGuild();
if (!caseObj.guild) {
caseObj.ended = true;
await this._markAsEnded(caseObj.id);
return;
}
});
}