草庐IT

rxjs-tslint-rules

全部标签

javascript - RxJS 先 take 然后 throttle 等待

我想使用RxJS-DOM观察mousewheel事件,这样当第一个事件触发时,我转发它然后删除所有值,直到后续值之间的延迟超过先前指定的持续时间。我想象的运算符可能看起来像:Rx.DOM.fromEvent(window,'mousewheel',(e)=>e.deltaY).timegate(500/*ms*/)想象一下下面的数据流:0-(200ms)-1-(400ms)-2-(600ms)-3发送的值是数字,时间描述了下一个值到达所需的时间。由于0是第一个值,它会被发出,然后直到3的所有值都会被丢弃,因为后续值之间的各个延迟不大于500ms。与throttle不同,无论是否发出最后

javascript - RxJS:只有在不同的情况下才去抖流

我想去抖一个流-但前提是源值与以前相同。我如何使用RxJS5做到这一点?如果值相同并且我之前在指定的时间窗口内发出过,我不想发出值。我应该能够使用流中的值-或者比较类似于distinctUntilChanged的​​函数。 最佳答案 这取决于您要做什么;当我尝试做类似的事情时,我遇到了这个问题,基本上是去抖动,但对对象的不同值使用不同的去抖动。在尝试了jayphelps的解决方案后,我无法让它按照我想要的方式运行。经过多次来回,结果发现有一种内置的简单方法可以做到这一点:groupby。constpriceUpdates=[{bid

javascript - 我可以在 Angular2 中可观察到的 RXJS 中捕获 "subscribe()"之前的某些错误吗?

基类是否有可能在允许子类订阅Angular2中的可观察对象之前捕获某些错误。例如exportclassSomeBaseClass{constructor(private_http:Http,private_location:Location){}protected_fetchData(url):Observable{constheaders=newHeaders();headers.append('Authorization','Tokenfoo');returnthis._http.get(url,{headers}).map(response=>response.json()).c

javascript - 在 RxJS 6 中重置 ReplaySubject

我有一个可过滤的“事件日志”,目前使用ReplaySubject实现(因为一些组件使用它并且它们可能在不同时间订阅)。当用户更改过滤器设置时,会发出新请求,但结果会附加到ReplaySubject而不是替换它。我想知道是否有办法更新ReplaySubject以仅使用类似switchMap的方式发送新项目?否则,我可能需要使用返回所有事件条目数组的BehaviorSubject或重新创建ReplaySubject并通知用户(可能通过使用另一个可观察对象)取消订阅并重新订阅新的可观察对象。 最佳答案 如果您希望能够在订阅者明确取消订阅和

javascript - RxJS:如何在传递下一个有效值之前进行一些清理?

我必须合并流以获取URL以加载图像:一个流用于放置事件,一个流用于文件输入更改。在每条新路径上,我都会加载此图像并将其绘制到Canvas上。这个Canvas被传递到另一个流中。它看起来像这样://preventbrowsersdefaultbehaviorfordropTargetElement['drop','dragover'].forEach(function(eventName){Rx.Observable.fromEvent(dropTargetElement,eventName).subscribe(function(event){event.preventDefault(

javascript - RxJs 如何处理文档事件

开始使用RxJs。找不到解决此问题的方法。我有一个可拖动的控件:startDrag=rx.Observable.fromEvent(myElem,'mousedown')现在,因为控件太小mousemove和mouseup事件应该在文档级别(否则它不会停止拖动,除非光标正好在元素上)endDrag=rx.Observable.fromEventdocument,'mouseup'position=startDrag.flatMap->rx.Observable.fromEventdocument,'mousemove'.map(x)->x.clientX.takeUntilendDra

javascript - 使用 RxJS 进行批处理?

我猜这应该很容易实现,但我在弄清楚如何解决它时遇到了麻烦(我猜是概念上的)。我拥有的是一个返回JSON对象数组的API。我需要遍历这些对象,并为每个对象进行另一个AJAX调用。问题是处理每个AJAX调用的系统一次只能处理两个事件调用(因为它是挂接到桌面应用程序的CPU密集型任务)。我想知道如何使用RxJS(使用版本5或4)实现这一点?编辑:此外,是否可以同时运行一系列步骤。即下载文件:1处理文件:1转换文件:1上传文件:1下载文件:2处理文件:2转换文件:2上传文件:2下载文件:3处理文件:3转换文件:3上传文件:3我试过做类似的事情:Rx.Observable.fromPromise

javascript - RxJS: BehaviorSubject 退订

我对observables很陌生,我担心内存泄漏。如果我创建以下内容:privateclient=newBehaviorSubject("");clientStream$=this.client.asObservable();并在这样的观点中支持他们:this.clientService.clientStream$.subscribe(client=>{this.client=client;}}我需要取消订阅吗?如果我调用client.getValue()会怎样? 最佳答案 doIneedtounsubscribe?可能。如果您正在

javascript - RxJS 6 : Subscribe only onComplete

我不关心next()或error()值。我还需要在subscribe()函数中将空函数定义为回调吗? 最佳答案 你可以这样做subscribe({complete:()=>{//dothestuffyouneedtodooncompletion}})subscribe允许您传递具有3个属性的对象,nexterror和complete,它们指向各自的功能。每个属性都是可选的。 关于javascript-RxJS6:SubscribeonlyonComplete,我们在StackOverfl

javascript - 将 RxJS 与 filter(Boolean) 一起用于查询?

我正在阅读一些代码片段:search(query:string){of(query).pipe(filter(Boolean),debounceTime(300),filter(Boolean)本质上和filter(v=>!!v)是一样的吗? 最佳答案 是的,它们是一样的。console.log(typeofBoolean);//printsfunctionconsole.log(Boolean.prototype.constructor("truthy"));//printstrueconsole.log(Boolean===Bo