Цитата:
|
let timer;
clearTimeout(timer);
|
Так Вы тут по факту заново заводите переменную таймера, которая равна undefined.
Сохраняйте ID таймаута в this.
wait(callback, time) {
clearTimeout(this._timer);
if (this.socket.readyState === 1) {
callback();
} else {
this._timer = setTimeout(() => this.wait(callback, time), time);
}
}