草庐IT

javascript - 函数式 javascript 和 RxJS 中的依赖注入(inject)和模拟

我正在尝试使用RxJS和函数组合将用经典OOJavascript编写的库重写为更具功能性和react性的方法。我从以下两个易于测试的函数开始(我跳过了Observables的导入):创建连接.jsexportdefault(amqplib,host)=>Observable.fromPromise(amqplib.connect(host))创建channel.jsexportdefaultconnection=>Observable.fromPromise(connection.createChannel())测试它们所需要做的就是注入(inject)amqplib或连接的模拟,并确

javascript - RxJS:我怎样才能使用 event.preventDefault() 来处理掉落事件?

我的标记:Dropfilehere...我的代码:vardropTarget=document.getElementById('drop-target');Rx.Observable.fromEvent(dropTarget,'dragover').subscribe(function(event){event.preventDefault();});vardropStream=Rx.Observable.fromEvent(dropTarget,'drop');dropStream.subscribe(function(event){console.log('Thiswillbeca

javascript - Rxjs: block 和延迟流?

简而言之,尝试将一个非常大的数组分成10个block,并在发出下一个10之前等待5秒。这是我目前拥有的Rx.Observable.from(hugeArray).bufferCount(10).delay(5000)//wanttowait5secs.flatMap(e=>e)//thisneedstogoaftertoflattenthearray,bufferspitsoutarraysofentries.flatMap((data,index)=>Rx.Observable.create(observer=>{//goingtorenderstuffhereobserver.on

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 - 如何在 RxJs Observable 中使用 Skip and Take

我正在学习Angular2、TypeScript、RxJs等,但我在使用RxJs和Observable返回服务内的数据子集时遇到问题。我希望下面的getCars函数读取一个json文件,解析它并返回一部分数据(偏移量和计数)。但是,我总是能取回所有数据(我正在测试的文件中有200个实体/汽车)。我做错了什么?实体服务@Injectable()exportclassEntityService{constructor(privatehttp:Http){}getCars(offset:number,count:number):Observable{returnthis.http.get('

javascript - RxJs 可观察对象 : run retryWhen after some more async requests

我的用例是:用户从我们的API请求Assets由于JWT过期而失败(作为httpOnlycookie传递)-API返回401状态代码。我们再次使用refresh_token对它们进行身份验证(无需用户执行任何操作),以检索新的JWT以及我们的客户端对auth0的请求。我们将新的JWT发送到我们的API,将其设置为httpOnlycookie以替换过期的cookie。然后我们要重试用户在第1步中向API发出的原始请求。我正尝试在我的Redux应用程序中使用Observablesredux-observable.如果您能想出另一种方法来使上述用户流程正常工作,我很乐意听取如何做。注意。我正

javascript - 如何使用 rxjs 5 观察对象变化

我想监视一个对象,这样所有的订阅者都会被通知它的任何变化。我已经看到了askedbefore,然而答案无关紧要,因为RXjs版本5不再在其API中包含ofObjectChanges。我看过一些“技巧”,比如创建一个返回函数的观察者:letmyObservable=newObservable((observer)=>{return(data)=>{observer.next(data)}})//...myObservable.subscribe()('someData')不过,我确信有更优雅的方式来做到这一点。有什么想法吗? 最佳答案

javascript - 为什么 Rxjs publishReplay(1).refCount() 不重播?

为什么publishReplay(1).refCount()不为迟到的订阅者重播最后一个值?a=newRx.Subject();b=a.publishReplay(1).refCount();a.subscribe(function(x){console.log('timelysubscriber:',x)});a.next(1);b.subscribe(function(x){console.log('latesubscriber:',x)});预期输出:timelysubscribe:1latesubscriber:1实际输出timelysubscriber:1

javascript - RxJs 将流拆分为多个流

如何根据分组方法将一个永无止境的流拆分为多个结束流?--a--a-a-a-a-b---b-b--b-c-c---c-c-d-d-d-e...>进入这些观察--a--a-a-a-a-|b---b-b--b-|c-c---c-c-|d-d-d-|e...>如你所见,a在开头,我收到b后,就不再收到a了,所以应该结束。这就是为什么普通的groupBy不好。 最佳答案 您可以使用window和share源Observable。bufferCount(2,1)还有一个小技巧:conststr='a-a-a-a-a-b-b-b-b-c-c-c-