草庐IT

ReactiveX

全部标签

javascript - 如何重复 ajax 请求,直到满足 RxJS Observable 的条件?

我正在尝试重复请求,直到响应包含使用RxJS的数据,此时我想调用成功(或失败)处理程序,但我在使用RxJS时遇到了麻烦。这是我目前的做法://...redux-observableactionobservable.mergeMap(()=>fetchData().repeatWhen(response=>response.takeWhile(({data})=>!data.length).of(response))).map(successFunction).catch(failureFunction);免责声明:我对RxJS很陌生.... 最佳答案

javascript - ReactiveX:Group and Buffer only last item in each group

如何对一个Observable进行分组,并从每个GroupedObservable中仅在内存中保留最后发出的项目?这样每个组的行为就像BehaviorSubject一样。像这样:{user:1,msg:"Anyonehere?"}{user:2,msg:"Hi"}{user:2,msg:"Howareyou?"}{user:1,msg:"Hello"}{user:1,msg:"Good"}所以在内存中我们只有每个用户的最后一项:{user:2,msg:"Howareyou?"}{user:1,msg:"Good"}当订阅者订阅时,这两个项目会立即发布(每个都有自己的发射)。就像我们为每

javascript - rxjs 科目应该在类里面公开吗?

假设我有两个类,您可以在其中观察一些可观察值。第一个例子,带有公共(public)主题:classEventsPub{publicreadonlyonEnd=newSubject();}第二个例子,私有(private)主题和注册方法:classEventsPriv{privatereadonlyendEvent=newSubject();publiconEnd(cb:()=>void):Subscription{returnthis.endEvent.subscribe(cb);}}第一个示例在某种程度上是不安全的,因为任何人都可以从类外部调用eventsPub.endEvent.n

javascript - 如何在 RxJS5 中应用定时背压?

假设我有以下代码:leta=Rx.Observable.of(1,2,3)letb=Observable.zip(a,a,(a,b)=>a+b)b.forEach(t=>console.log(t))这会立即输出结果。现在,我如何在每条消息之间设置一个定时延迟作为背压方式(请注意,我不需要缓冲区;相反,我想要a和b成为ColdObservables),例如:b.takeEvery(1000).forEach(t=>console.log(t))并得到完全相同的答案:246替代方案:如果RxJS不支持背压(某些可观察对象的拉动机制),那么如何在不耗尽资源的情况下创建无限生成器?备选方案2

javascript - RxJS 可观察到的连接不起作用

concat调用发生了什么?我知道如果我将concat替换为merge代码可以正常工作并且输出是foobarquxquux.我已经阅读了有关热和冷可观察量的信息,并且我知道如果在订阅之前生成值,则可能会发生热可观察量,但我的可观察量是cold,所以我想情况并非如此。constRx=require('rxjs');constobservable1=Rx.Observable.create((observer)=>{observer.next('foo');observer.next('bar');returnobserver;});constobservable2=Rx.Observab

javascript - 没有任何加载器的浏览器中的 ReactiveX/RxJS 5?

如何在不使用任何加载器的旧javascript应用程序中加载RxJS?对于RxJS4.x,我可以简单地这样做:RxJS5怎么样?他们的文档假设您正在使用某种类型的加载器来处理所有事情,但是对于没有加载器的遗留应用程序的中间步骤,只是在构建时打包文件?他们还提到通过仅包含您用于“大小敏感捆绑”的功能来创建您自己的bundle的能力,这听起来很棒。所以我应该只创建一个入口点文件然后将它添加到我的构建过程并使用某种工具(browserify/gluejs/webmake)将所有内容构建到一个文件中,就像在RxJS4中那样将Rx(或简单的Observable)公开为全局变量?,例如://run

javascript - 如何在 RxJS 中完成 Observable

假设我们有一个Observable:varobservable=Rx.Observable.fromEvent(document.getElementById('emitter'),'click');如何让它完成(什么会触发所有订阅的观察者的onComplete事件)? 最佳答案 在目前的形式中,你不能。您的可观察对象源自未完成的来源,因此它本身无法完成。您可以做的是使用完成条件扩展此源。这会像这样:varend$=newRx.Subject();varobservable=Rx.Observable.fromEvent(docum

javascript - 完成后 n 秒重复请求(Angular2 - http.get)

我玩了一下angular2,过了一会儿就卡住了。使用http.get可以很好地处理单个请求,但我想每4秒轮询一次实时数据,经过一段时间的修补并阅读了很多我最终得到的reactx内容:Observable.timer(0,4000).flatMap(()=>this._http.get(this._url).share().map(this.extractData).catch(this.handleError)).share();在http.get-observable发出请求结果后,是否有一种简单方法来启动(4秒)间隔?(或者我最终会陷入observable-hell?)我想要的时间

javascript - Reactive-Extensions/RxJS 和 ReactiveX/rxjs 有什么区别

我有点懵。这些库有什么区别?https://github.com/ReactiveX/rxjshttps://github.com/Reactive-Extensions/RxJSrx之间有什么区别?,@reactivex/rxjsrxjs在npm上。如果你搜索npm有多个rxjs库,哪个是官方的?https://www.npmjs.com/search?q=rx 最佳答案 RxJS4托管于:https://github.com/Reactive-Extensions/RxJSRxJS5(https://github.com/Rea

java - 为什么我的 RxJava Observable 除非阻塞,否则不会发出或完成?

背景我有许多RxJavaObservables(从Jersey客户端生成,或者使用Observable.just(someObject)生成)。它们都应该只发出一个值。我有一个模拟所有Jersey客户端并使用Observable.just(someObject)的组件测试,我看到了与运行生产代码时相同的行为。我有几个类作用于这些observables,执行一些计算(以及一些副作用-我可能会让它们稍后直接返回值)并返回空的voidobservables。有一次,在一个这样的类中,我试图压缩我的几个源可观察量然后映射它们-如下所示:publicObservabledoCalculation