jjzjj

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 - 进行第二次 http 调用并在同一个 Observable 中使用结果

我使用的是angular2,它是http组件。我想调用一个将返回元素列表的RESTAPI。该列表的大小限制为100个条目。如果有更多项,将在响应中设置一个hasMore标志。然后您必须使用参数page=2再次调用API。如果有一个Observable,同时包含两个服务器响应,那就太好了。我的代码看起来像这样:call({page:1}).map(res=>res.json()).do((res)=>{if(res.meta.hasMore){//doanotherrequestwithpage=2}}.map(...).subscribe(callback)call是一个将使用http

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 - 以 Angular 6 重试 HTTP 请求

我使用拦截器根据每个请求的HTTP响应在显示屏上显示错误消息。intercept(request:HttpRequest,next:HttpHandler):Observable>{constcustomReq=request.clone({//headers:request.headers.set('app-language','en')});returnnext.handle(customReq).pipe(tap((ev:HttpEvent)=>{if(evinstanceofHttpResponse){//processingrequest}}),catchError(resp

javascript - RxJS 6 : Subscribe only onComplete

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

javascript - 在 Angular 中渲染基于时间的 Observables 而无需压倒性的变化检测

我们的Angular应用程序中有许多组件需要每秒定期显示每个组件唯一的新值(倒计时、时间戳、耗时等)。最自然的方法是创建使用RxJStimer和interval工厂函数的可观察对象。但是,这些会在整个应用程序的每个时间间隔触发Angular变化检测,调用时间间隔函数的次数。如果我们在页面上有几十个组件,这会触发整个应用程序每秒或每个时间段数十次的变化检测,从而产生很大的性能开销。到目前为止,我尝试了两种方法来解决这个问题。对任何一个的好的回答都会非常有帮助——最好是两者兼而有之。我想避免手动触发变更检测,而是依赖于Observables发出的新值,并让异步管道/OnPush变更检测策略

javascript - 使用 Javascript 进行响应式编程

我是响应式(Reactive)编程的新手,阅读所有这些我无法理解的文章有点迷茫。实际上,我是一名来自Nodejs、Angularjs、Angular2和React的javascript开发人员。我做什么我一直使用promises,用于远程数据获取、本地异步解析等......比回调更好的可测试性,满足我的需求。我对流的理解除非在特定情况下,否则我不知道流可以在哪里拯救我。这种特殊情况是,我不能在监听流时使用promise,因为promise只会被解析一次。SocketIo示例:io.on('connection',(socket)=>{//thisworks});io.on('conne

javascript - 错误后可观察到 rx 损坏

我正在尝试使用ngrxstore+ngeffects为我的应用程序编写登录流程。我设法编写了它并且它在快乐的场景中工作,但是当用户向表单输入错误的值时,服务器以401响应,下一次登录尝试无效。我读到在使用可观察对象时必须捕获异常,以免“中断”流,但据我所知,我捕获了异常并且它现在仍在工作。代码下方;exportclassLoginComponent{logged=newObservable();constructor(privatestore:Store){this.logged=store.select('login');}login(username:string,password

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