setTimeout выполняется только один раз - PullRequest
0 голосов
/ 04 мая 2018

Почему setTimeout вызывается только один раз?

repeatSubscriber = function(observer) {
        observer.next('first');
        (function() {
            setTimeout(() => {
                observer.next('repeating timed resp');
            }, 3000);
        }());
    };

Печать:

first
repeating timed resp

Ответы [ 3 ]

0 голосов
/ 04 мая 2018

Поскольку это работает так, это в природе функции,

Если вам нужен повторный вызов, вам нужна setInterval функция

0 голосов
/ 04 мая 2018

Потому что должно:

setTimeout () устанавливает таймер, который выполняет функцию или указанный фрагмент кода один раз после истечения таймера.

Больше в MDN

То, что вы ищете, это setInterval()

repeatSubscriber = function(observer) {
        observer.next('first');
        (function() {
            setInterval(() => {
                observer.next('repeating timed resp');
            }, 3000);
        }());
    };
0 голосов
/ 04 мая 2018

setTimeout() должен срабатывать только один раз - вам нужно setInterval().

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