如何计算按钮点击次数

时间:2017-06-26 08:12:36

标签: javascript angular ecmascript-6 rxjs

let clickStream = Observable.fromEvent(button,'click');
clickStream.scan( count => count + 1,0)
        .subscribe( count => console.log(`you click count is${count}!`));

这是angular2项目我使用的rxjs版本是5.0,但是count是对象所以它不能计算总和,我如何计算按钮点击时的计数?这是日志错误↓

运算符'+'不能应用于类型'{}'和'数字'。

2 个答案:

答案 0 :(得分:2)

问题在于TypeScript与您期望匹配的overload不匹配。

如果您明确指定count的类型,它应该匹配正确的重载并且不应该影响错误:

let clickStream = Observable.fromEvent(button, 'click');
clickStream
  .scan((count: number) => count + 1, 0)
  .subscribe(count => console.log(`your click count is ${count}!`));

答案 1 :(得分:0)

这是一个工作示例,来自我的项目:

 let clicks = Observable.fromEvent(document, 'click');
 let ones = clicks.mapTo(1);
 let seed = 0;
 let count = ones.scan((acc, one) => acc + one, seed);
 count.subscribe(x => console.log(x));

别忘了导入这些操作符

import 'rxjs/add/operator/scan';
import 'rxjs/add/operator/mapTo';
import 'rxjs/add/observable/fromEvent';