草庐IT

javascript - rxjs 观察数组推送

我想使用observables来监控对象何时被推送到数组中。我想从一个空数组开始,当发生推送时,我希望observable检测并处理它,然后等到下一次推送。这与可观察者等待事件的“fromEvent”非常相似。下面的代码立即调用completed()因为数组是空的,我如何让它等待推送?vartestArray=[];test(){varo={timestamp:newDate()}testArray.push(o)}varo=Observable.from(testArray).concatMap(x=>{returnx;});o.subscribe(x=>{console.log("

rxjs - RxJS 中的 map 和 pluck 有什么区别?

我试图理解map之间的区别和pluckRxJS中的转换运算符。谁能帮我解决这个问题? 最佳答案 文档说Pluck:Likemap,butmeantonlyforpickingoneofthenestedpropertiesofeveryemittedobject.因此,假设你有[{name:'Joe',age:30,job:{title:'Developer',language:'JavaScript'},{name:'Sarah',age:35}]并且您想要一份包含所有职位的列表。使用map会有点痛苦(因为job的可空性),但是使

javascript - RxJs:zip 运算符的有损形式

考虑使用zip运算符将两个无限的Observable压缩在一起,其中一个发出的数据项的频率是另一个的两倍。当前的实现是无损的,即如果我让这些Observable发射一个小时,然后我在它们的发射率之间切换,第一个Observable最终会catch另一个。随着缓冲区变得越来越大,这会在某个时候导致内存爆炸。如果第一个observable将在几个小时内发出项目,而第二个将在最后发出一个项目,则会发生同样的情况。如何实现此运算符的有损行为?我只想在我从两个流中获得排放时进行排放,我不在乎我错过了更快的流中有多少排放。说明:我在这里尝试解决的主要问题是由于zip运算符的无损特性导致的内存爆炸。

javascript - rollup.js 中的 rxjs 不导出“主题”

我正在尝试设置我的项目以使用汇总,作为angular2迁移到AOT编译的一部分,但是,我遇到了以下问题。Error:'Subject'isnotexportedbynode_modules\rxjs\Subject.js这是我的rollup.js文件:importrollupfrom'rollup';importnodeResolvefrom'rollup-plugin-node-resolve'importcommonjsfrom'rollup-plugin-commonjs';importuglifyfrom'rollup-plugin-uglify'exportdefault{e

javascript - 测试rxjs的正确方法

我带来了“rxjsinaction”这本书,刚刚完成了测试部分。测试rxjs代码与通常的测试不同,因为一切都是延迟加载。在书中,他们提到了两种测试方法,通过完成(我正在使用QUnit并且完成信号异步代码已完成)或大理石图。我的问题是,我应该选择上面提到的哪种方法? 最佳答案 我的同事经常问我这个问题。我终于抽出时间记录mywaysoftestingRxJsonmyblog.由于您的问题似乎与RxJs5有关,因此我只会在此处引用我帖子的相关部分。以RxJs4的方式在RxJs5中测试当您将代码库从RxJs4迁移到5时,您会发现很多东西已

javascript - RxJS 减少不会继续

为什么flatMap不会触发下游缩减?我得到的代码如下:handleFiles.flatMap(files=>Rx.Observable.from(files).flatMap((file,i)=>fileReader(file,i)).reduce((form,file,i)=>{form.append('file['+i+']',result);console.log('reducestep',file);returnform;},newFormData()).tap(console.log.bind(console,'afterreduce'))).subscribe(conso

javascript - 如何将 Node 可读流转换为 RX 可观察流

如果我有一个Nodejs流,例如来自process.stdin或fs.createReadStream,我如何将其转换为RxJsObservable使用RxJs5流?我看到了RxJs-Node有一个fromReadableStream方法,但看起来它已经将近一年没有更新了。 最佳答案 对于任何正在寻找这个的人,根据Mark的建议,我为rxjs5改编了rx-nodefromStream实现。import{Observable}from'rxjs';//Adaptedfromhttps://github.com/Reactive-Ext

javascript - 取消订阅 RxJS Observables

我有这两个对象,我想停止监听它们的事件。我对observables和RxJS完全陌生,只是尝试使用Inquirer库。RxJSAPI供引用:http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html如何取消订阅这些类型的可观察对象?ConnectableObservable:ConnectableObservable{source:EventPatternObservable{_add:[Function],_del:[Function],_fn:undefined},_connection:ConnectDispo

javascript - RxJS 中的同步性

我希望以下代码可以异步运行:varrange=Rx.Observable.range(0,3000000);range.subscribe(function(x){},function(err){},function(){console.log('Completed');});console.log('HelloWorld');但事实并非如此。遍历大范围的数字需要一段时间,只有完成后才会恢复执行,您可以尝试代码here.我对何时期望RxJS同步或异步行为感到困惑。这取决于使用的方法吗?我之前的想法是,一旦我们进入Observables/Observer领域,其中的所有内容都会异步运行,

javascript - RxJS 和 React 多次点击元素形成单个数据数组

所以我刚开始尝试学习rxjs并决定在我目前正在使用React开发的UI上实现它(我有时间这样做,所以我就去做了)。然而,我仍然很难理解它实际上是如何工作的……不仅仅是“基本”的东西,比如什么时候实际使用Subject和什么时候使用Observable,或者什么时候只使用React的本地状态,还有如何链接方法等等。但这太宽泛了,所以这是我遇到的具体问题。假设我有一个UI,其中有一个过滤器(按钮)列表,这些过滤器(按钮)都可以点击。每当我点击其中一个时,我首先要确保接下来的操作会去抖动(以避免太快和太频繁地发出网络请求),然后我想确保如果它被点击(事件),它将被插入一个数组,如果再次单击它