草庐IT

rxjs_observable

全部标签

javascript - 如何使用 rxjs 过滤按键?

我需要在不重复的情况下获得干净的keydown/keyup事件。当您按下一个键时,会发生keydown事件,当您释放时-keyup。没有困惑的重复按键。代码如下:varkeyDowns=rx.Observable.fromEvent(document,'keydown');varkeyUps=rx.Observable.fromEvent(document,'keyup');varkeyActions=rx.Observable.merge(keyDowns,keyUps);keyActions.subscribe(function(e){console.loge});如何调整它来完成

javascript - Rxjs 可观察等待直到满足某些条件

我有以下重试逻辑来重试操作。它适用于单个请求。对于多个正在进行的请求,我想在重试之前等待现有的重试逻辑完成。handleError(errors:Observable){constretryCountStart:number=1;//waitifthereisanyexistingoperationretrying//onceitiscomplete,continueherereturnerrors.mergeScan((retryCount:any,err:any)=>{if(retryCount如何在上述方法中满足某些条件之前添加延迟? 最佳答案

javascript - RxJS 5.0 "do while"类机制

我正在尝试使用RxJS进行简单的简短投票。它需要每delay秒向服务器上的位置path发出一次请求,一旦达到两个条件之一就结束:回调isComplete(data)返回true或尝试服务器的次数超过maxTries。这是基本代码:newShortPoll(path,maxTries,delay,isComplete){returnObservable.interval(delay).take(maxTries).flatMap((tryNumber)=>http.get(path)).doWhile((data)=>!isComplete(data));}但是,doWhile在RxJS

javascript - 如何在 RxJS5 中应用定时背压?

假设我有以下代码:leta=Rx.Observable.of(1,2,3)letb=Observable.zip(a,a,(a,b)=>a+b)b.forEach(t=>console.log(t))这会立即输出结果。现在,我如何在每条消息之间设置一个定时延迟作为背压方式(请注意,我不需要缓冲区;相反,我想要a和b成为ColdObservables),例如:b.takeEvery(1000).forEach(t=>console.log(t))并得到完全相同的答案:246替代方案:如果RxJS不支持背压(某些可观察对象的拉动机制),那么如何在不耗尽资源的情况下创建无限生成器?备选方案2

javascript - RxJS:可观察对象和单个观察者的递归列表

我在处理可观察量的递归链时遇到了一些麻烦。我正在使用RxJS,它目前的版本是1.0.10621,包含最基本的Rx功能,以及用于jQuery的Rx。让我为我的问题介绍一个示例场景:我正在轮询TwittersearchAPI(JSON响应)用于包含特定关键字的推文/更新。响应还包括一个“refresh_url”,应该使用它来生成后续请求。对该后续请​​求的响应将再次包含一个新的refresh_url等。Rx.jQuery允许我让Twitter搜索API调用一个可观察的事件,它产生一个onNext然后完成。到目前为止我尝试的是让onNext处理程序记住refresh_url并在onCompl

javascript - 如何重启或刷新 Observable?

我有一个TypeScript/Angular2Observable,它在我第一次调用时就完美运行。但是,我有兴趣将多个订阅者附加到同一个可观察对象并以某种方式刷新可观察对象和附加的订阅者。这是我得到的:query():Rx.Observable{returnthis.server.get('http://localhost/rawData.json').toRx().concatMap(result=>result.json().posts).map((post:any)=>{varrefinedPost=newRefinedPost();refinedPost.Message=pos

javascript - 为什么你会在 Observable 函数上调用 .call() ?

我是Angular的相对初学者,我正在努力理解我从ng-bootstrap项目中阅读的一些源代码。Thesourcecodecanbefoundhere.我对ngOnInit中的代码感到很困惑:ngOnInit():void{constinputValues$=_do.call(this._valueChanges,value=>{this._userInput=value;if(this.editable){this._onChange(value);}});constresults$=letProto.call(inputValues$,this.ngbTypeahead);con

javascript - RXJS : moving from of() to scheduled()

我使用of()运算符来创建具有简单值的可观察对象,例如of(navigator.onLine)但我不得不更新RxJS版本,我得到了这个linter警告ofisdeprecated,改用scheduled。这显然不是完全相同的功能,我不应该设置调度程序。你会如何对待它?感谢任何帮助。谢谢。 最佳答案 这个是是一个rxjsbug,它是stillopenclosed。检查here了解更多信息您可以监控此问题并同时使用://tslint:disable-next-line:deprecationof(navigator.onLine);

javascript - 在 RxJS 中排序数组

RxJava有一个方法toSortedList(Comparatorcomparator)将对象流转换为由Comparator排序的对象列表。我如何在JavaScript中使用RxJS实现相同的目的,并获得一个带有对象流的Observable以发出排序的数组/列表? 最佳答案 您可以使用以下代码:Rx.Observable.of(5,8,7,9,1,0,6,6,5).toArray().map(arr=>arr.sort()).subscribe(x=>console.log(x)) 关

javascript - Angular2 路由守卫返回 Observable<bool>,如何处理错误

我有一个像下面这样的路由守卫@Injectable()exportclassAuthGuardimplementsCanActivate{constructor(privaterouter:Router,privateauthenticationSvc:AuthenticationService){}canActivate():Observable{returnthis.authenticationSvc.getAuthenticatedUser().map(r=>{if(this.authenticationSvc.isAuthenticated()){//loggedinsoret