setTimeout只执行一次

时间:2018-05-04 10:01:33

标签: javascript typescript observable

为什么setTimeout只被调用一次?

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

打印

first
repeating timed resp

3 个答案:

答案 0 :(得分:3)

setTimeout()只能触发一次 - 您需要的是setInterval()

答案 1 :(得分:2)

因为它应该:

  

setTimeout()设置一个计时器,在计时器到期后执行一个函数或指定的代码一次

More at MDN

您要找的是setInterval()

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

答案 2 :(得分:0)

因为它在功能性质上如此工作,

如果您需要重复通话,则需要setInterval功能