Почему setTimeout вызывается только один раз?
repeatSubscriber = function(observer) { observer.next('first'); (function() { setTimeout(() => { observer.next('repeating timed resp'); }, 3000); }()); };
Печать:
first repeating timed resp
Поскольку это работает так, это в природе функции,
Если вам нужен повторный вызов, вам нужна setInterval функция
setInterval
Потому что должно:
setTimeout () устанавливает таймер, который выполняет функцию или указанный фрагмент кода один раз после истечения таймера.
Больше в MDN
То, что вы ищете, это setInterval()
setInterval()
repeatSubscriber = function(observer) { observer.next('first'); (function() { setInterval(() => { observer.next('repeating timed resp'); }, 3000); }()); };
setTimeout() должен срабатывать только один раз - вам нужно setInterval().
setTimeout()