草庐IT

rxjs_observable

全部标签

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-

javascript - RxJS forkJoin 会按顺序返回结果吗?

RxJS提供了一个名为forkJoin的函数。它允许您输入多个Observables并等待它们全部完成。我想知道生成的数组是否会按照与输入可观察对象的顺序相同的顺序包含结果。如果不会,哪一个运算符(operator)会保持相同的顺序?我一直在调查docs并且无法找到答案。 最佳答案 它将以相同的顺序返回结果。如theseofficialdocs中所述.值得一提的是,它只会发出流的最新值:varsource=Rx.Observable.forkJoin(Rx.Observable.of(1,2,3),Rx.Observable.of(

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 - 断开 Mutation Observer 与回调函数的连接

如何断开我的变异观察者与其回调函数的连接?正在按应有的方式观察更改,但我想在第一次更改后断开观察者的连接。由于observer变量超出范围,它并没有像它应该的那样断开连接。如何将观察者变量传递给回调函数,以便代码正常运行?functionmutate(mutations){mutations.forEach(function(mutation){if(mutation.type==='characterData'){console.log('1stchange.');observer.disconnect();//Shoulddisconnectherebutobservervaria

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.