草庐IT

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

javascript - 我如何解析另一个 Observable 中的一个 Observable? - RXJS

我有一个Observable,我在其中使用了另一个observable,但是第二个Observable我无法解析。这是代码:returnObservable.fromPromise(axios(config)).map(res=>{return{accessToken:res.data.access_token,refreshToken:res.data.refresh_token}}).map(res=>{return{me:getMe(res.accessToken),accessToken:res.accessToken,refreshToken:res.refreshToken

javascript - 为每个订阅者评估的 rxjs map 运算符

为什么map运算符针对每个订阅者而不是一次进行评估?constobs1=Rx.Observable.interval(1000).take(1).map((x,i)=>{console.log(i+1+':1map')return'obs1';})constobs2=Rx.Observable.interval(1300).take(1).map((x,i)=>{console.log(i+1+':2map')return'obs2';})constobs3=Rx.Observable.interval(1700).take(2).map((x,i)=>{console.log(i+1