jjzjj

reactive-programming

全部标签

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 - 为什么 componentWillUpdate() 和 componentWillMount() 在这些方法中使用 setState 时不会触发渲染功能?

我们可以在每个组件生命周期方法中调用setState()。为什么我们不在componentWillUpdate()和componentWillMount()中调用它?为什么这些方法在将setState放入其中时不触发渲染函数?谁能详细解释一下?谢谢。 最佳答案 componentWillMount()中的setState()componentWillMount()isinvokedimmediatelybeforemountingoccurs.Itiscalledbeforerender(),thereforesettingstat

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 - 响应式编程 - 值大于 X 达 N 秒

我有一个流randStream,它每半秒发出一次随机值,还有一个boolStream,它将值从randStream转换为bool值。letrandStream=Kefir.fromPoll(500,()=>Math.random())letboolStream=Kefir.map((rand)=>rand>0.5)我想在boolStream发出true5秒(连续)时发出true。否则emit为假。我正在使用Kefir.js图书馆。你有什么想法吗?谢谢。 最佳答案 在给定条件下,当您知道randStream发出数字的确切速率时,使用.

javascript - 如何避免 Rx 中的故障

与其他“FRP”库不同,Rx不会防止故障:使用时间不匹配的数据调用的回调。有解决此问题的好方法吗?举个例子,假设我们有一系列从单个流派生的昂贵计算(例如,我们在下面进行排序或ajax获取,而不是_.identity)。我们执行distinctUntilChanged以避免重新计算昂贵的东西。sub=newRx.Subject();a=sub.distinctUntilChanged().share();b=a.select(_.identity).distinctUntilChanged().share();c=b.select(_.identity).distinctUntilCha

javascript - 在 RxJS 中创建一个可观察的 'completed' 事件

给定:thereactiveextensionsdraganddropexample,您将如何订阅一个掉落事件?我已修改代码以订阅“已完成”回调,但它没有完成。(function(global){functionmain(){vardragTarget=document.getElementById('dragTarget');var$dragTarget=$(dragTarget);//Getthethreemajoreventsvarmouseup=Rx.Observable.fromEvent(document,'mouseup');varmousemove=Rx.Observa

javascript - 我如何使用 RxJs 推迟对 AJAX 调用的任何请求,直到前一个请求解决

我有一个observable,表示由某个外部组件触发的操作。出于这个问题的目的,我们称它为createBananaAction。我有一个bananaService,其方法create执行AJAX请求并将创建的香蕉作为Promise返回。因此,无论何时从createBananaAction收到一些数据,我们都想调用bananaService.create()。代码如下所示:(使用RxJs)this.createdBananas=createBananaAction.flatMap(()=>bananaService.create());现在的挑战是“限制”createBananaActi

javascript - 如何以编程方式将参数传递给 Blaze 组件?

meteorreacttutorial指示您通过调用Blaze.render创建您的Meteor登录按钮:this.view=Blaze.render(Template.loginButtons,React.findDOMNode(this.refs.container));account-ui包文档说如果你想在屏幕右边缘对齐登录下拉菜单,你应该使用{{>loginButtonsalign="right"}}'不幸的是,Blaze.render()函数的文档没有指出我的JavaScript可以使用任何参数来传递等效于align="right".我如何告诉Blaze使用align="ri

javascript - Angular 2.0 - 将 promise 链转换为 Observables

我正在将NG1.X服务转换为NG2.0。我的NG1.X服务有promise链(简化):dataService.search=function(searchExp){returnthis.getAccessToken().then(function(accesstoken){varurl=$interpolate('https://my-api-url?q={{search}}&{{accesstoken}}')({search:searchExp,accesstoken:accesstoken});return$http({url:url,method:'GET',cache:true

javascript - 用于分页的 RXJS while 循环

我尝试查询swapapi中的所有人数据.URLswapi.co/api/people返回一个对象,其中包含一个人数组和我从中获取下一个数据的URL(swapi.co/api/people/?page=2)。我想要做的是,每次有新页面可用时,订阅方法都会更新Angular组件。我是响应式(Reactive)编程模型的新手。如何实现while循环或一系列Observable?这适用于第一页:getAllPeople():Observable{letnextUrl=http://swapi.co/api;letsource=Observable.create(observer=>{this.