Rxjs:扫描运算符

时间:2016-07-04 15:33:17

标签: angular rxjs angular2-template angular2-directives rxjs5

我一直在阅读这段代码,如果我用地图替换扫描我得不到属性" getTime"未定义的,为什么会发生这种情况我假设两个运算符从一个可观察的项目发出并在其上应用一些函数

this.clock = Observable.merge(
        this.click$,
        Observable.interval(5000)
    )
        .startWith(new Date())
        .map((acc : Date)=> {
            const date = new Date(acc.getTime());
             date.setSeconds(date.getSeconds() + 1);
            return date;
        });

1 个答案:

答案 0 :(得分:0)

因为您将两个流合并为一个流。您将收到来自click$interval的活动。在这些情况下,它们不是Date类型,因此您可以使用getTime方法。

scan运算符允许在事件之间保持状态。 map只是将输入转换为输出。在最后一个的情况下,您将收到活动本身...