我一直在阅读这段代码,如果我用地图替换扫描我得不到属性" 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;
});
答案 0 :(得分:0)
因为您将两个流合并为一个流。您将收到来自click$
或interval
的活动。在这些情况下,它们不是Date类型,因此您可以使用getTime
方法。
scan
运算符允许在事件之间保持状态。 map
只是将输入转换为输出。在最后一个的情况下,您将收到活动本身...