"Я пытаюсь заставить setTimeout вызывать функцию poll каждые 2 секунды, это не так"
.setTimeout()
метод вызываетфункция, которую вы передаете ей ровно один раз, после указанной задержки.
.setInterval()
метод вызывает функцию, которую вы передаете ей несколько раз, с указанной задержкой между каждым вызовом.
От обновления к вашему вопросу вы, кажется, думаете, что они оба делают то же самое.Пожалуйста, прочитайте документацию, с которой я связан.
Обратите внимание, что вы должны передать ссылку на функцию (или строку для eval'd), так сказать:
setInterval(poll, 2000);
// NOT
setInterval(poll(), 2000);
Последнийне должен работать, потому что он немедленно вызывает poll()
и передает возвращаемое значение (undefined
) в setInterval()
, поэтому я действительно не могу понять, почему это сработало для вас.