Node.js setTimout не ждет - PullRequest
       0

Node.js setTimout не ждет

0 голосов
/ 30 ноября 2018

Я давно пользуюсь setTimeout, но не могу объяснить, как истекло время ожидания js моего узла, игнорируя время ожидания.

Здесь код обвинения (в Узле 8.11.3):

//Here is the issue
socket.on('GameInput', function (input, state) {
    setTimeout(socket.player.input, 10000, input, state);
});

//The player constructor is pretty standard
const _PLAYER = function(socket, name) {
    //properties
    this.input = function(input, state) {
        //dosomestuff
        io.emit('GameInput', this.name, input, state);
    }
}

Я просто создаю ложную задержку на входах игрока (для проверки способности к игре), и те миллисекунды, которые я пишу, не дают никакого эффекта.

Редактировать: реальная проблема в том, что я не перезагружаю свой узелсервер правильно ... Хороший код действительно setTimeout (() => {socket.player.input (input, state);}, 10000);Я пробовал, но без перезапуска эффект не такой видимый -__-

1 Ответ

0 голосов
/ 30 ноября 2018

Вам нужно заключить функцию в тайм-аут в вызове функции, иначе вы вызываете функцию, а не пропускаете ее, чтобы завершить ее по истечении времени ожидания.

Примерно так:

socket.on('GameInput', function (input, state) { setTimeout(function() { socket.player.input(input, state) }, 10000); });

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...