草庐IT

rxjs-tslint-rules

全部标签

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 - codelyzer 和 tslint 有什么区别?

有人可以指导我解决以下问题吗:codelyzer和tslint有什么区别?两者都仅用于代码分析吗?如果是这样,那么最推荐的是哪一个?两者都依赖彼此吗?对于任何特定的Angular2项目,我们是否需要同时两者?我对这两个npm包感到很困惑。 最佳答案 Githubrepo说明一切:AsetoftslintrulesforstaticcodeanalysisofAngularTypeScriptprojects.所以不,它们不是两者相互依赖的。只有Codelyzer依赖于TsLint。是的,如果你想检查你的代码,你的Angular项目需

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 - 用于分页的 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.

javascript - RxJS Interval 无延迟

以下代码在5000ms之后发出一个int,然后每隔5000ms发出另一个:letevens=Observable.interval(5000).map(i=>{returni*2;});evens.subscribe((i)=>{console.log(i);});是否可以这样做,但立即获得第一个结果(0ms),然后在后续结果之间等待5000ms? 最佳答案 您可以使用timer()其中第一个参数是初始延迟:timer(0,5000);或者,如果您希望第一个项目立即发出,您也可以使用startWith()运营商。2019年1月:针对

javascript - RxJS publishReplay 与 publishLast

我正在Angular应用程序中实现缓存HTTP结果。据我所知,以下两个代码都有效,但我需要知道它们是否在做完全相同的事情,还是我遗漏了一些重要的东西?最后发布getPosts(){if(!this.posts$){this.posts$=this.http.get('api').publishLast().refCount();returnthis.posts$;}returnthis.posts$;}发布重播getPosts(){if(!this.posts$){this.posts$=this.http.get('api').publishReplay(1).refCount();

javascript - RxJS combineLatest 无需等待源可观察量发出?

我有两个源可观察对象,我需要在一个源可观察对象发出后立即计算一些数据。我正在尝试使用combineAll()运算符,但它仅在每个源可观察对象首次发出时发出一个值。是否有任何类似于combineAll()的运算符在任何源可观察对象首次发出时立即发出?如果不是,最明确的方法是什么?我尝试过的:constsource1$=service.getSomeData();constsource2$=service.getOtherData();combineLatest(source1$,source2$).pipe(map([source1Data,source2Data]=>{//thisco