代码之家  ›  专栏  ›  技术社区  ›  tm1701

argular5中的rxjs v5-clickstream.bufer(()=>clickstream.throttletime(250))等失败

  •  1
  • tm1701  · 技术社区  · 7 年前

    我该如何做以下操作?

    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'的参数不能分配给的参数 观察类型。类型()中缺少属性“_Isscalar”=>void

    备选方案,如 ".buffer(function() { return clickStream.throttleTime(250); }) " 给出类似的错误。

    我也尝试过 throttle(250) 但这两者都不起作用。

    1 回复  |  直到 7 年前
        1
  •  2
  •   martin    7 年前

    看起来你想用 bufferWhen 接受一个函数作为参数。

    否则,只需将观测数据直接传递给 buffer 不包装:

    ...
    .buffer(clickStream.throttleTime(250))
    
    推荐文章