RxJs v5 в Angular5 - clickStream.bufer (() => clickStream.throttleTime (250)) и т. Д. Завершается ошибкой - PullRequest
0 голосов
/ 29 ноября 2018

Как я могу сделать следующее?

let button = document.querySelector('.this');
let clickStream = Observable.fromEvent(button, 'click');
let multiClickStream = clickStream
   .buffer(() => { return clickStream.throttleTime(250); } )
   .map(function(list) { return list.length; })
   .filter(function(x) { return x >= 2; });

Сообщение об ошибке:

TS2345: аргумент типа '() => void' нельзя назначить параметру типа Observabl.Свойство _isScalar отсутствует в type () => void

Альтернативы, такие как ".buffer(function() { return clickStream.throttleTime(250); }) ", дают аналогичную ошибку.

Я тоже пробовал throttle(250), но это тоже не работает.

1 Ответ

0 голосов
/ 29 ноября 2018

Похоже, вы хотели использовать bufferWhen, который принимает функцию в качестве аргумента.

В противном случае просто передайте Observable непосредственно в buffer, не заключая его в оболочку:

...
.buffer(clickStream.throttleTime(250))
...