【问题标题】:RxJs v5 in Angular5 - clickStream.bufer( () => clickStream.throttleTime(250)) etc failsAngular5 中的 RxJs v5 - clickStream.bufer( () => clickStream.throttleTime(250)) 等失败
【发布时间】:2018-11-29 17:18:59
【问题描述】:

我该如何执行以下操作?

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' 类型的参数不能分配给 输入 Observable。类型 ()=>void

中缺少属性“_isScalar”

".buffer(function() { return clickStream.throttleTime(250); }) " 之类的替代方案会产生类似的错误。

我也试过throttle(250),但这也不起作用。

【问题讨论】:

    标签: angular rxjs rxjs5


    【解决方案1】:

    您似乎想使用接受函数作为参数的bufferWhen

    否则直接将 Observable 传递给 buffer 而不进行包装:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-26
      • 2018-06-15
      • 2016-04-30
      • 2018-09-07
      相关资源
      最近更新 更多