jjzjj

Observable

全部标签

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 - knockout JS "You cannot apply bindings multiple times to the same element"

我正在使用kendo移动应用程序构建器,我正在使用knockoutjs进行绑定(bind),但出现错误“您不能将绑定(bind)多次应用于同一元素”。我有两个包含绑定(bind)的javascript文件,在我的代码下面//Employee.js//functionEmployeeViewModel(){this.EmployeeName=ko.observable();this.EmployeeMobile=ko.observable();this.EmployeeEmail=ko.observable();}ko.applyBindings(newEmployeeViewModel

javascript - RxJS 1 array item into sequence of single items - 运算符

鉴于这样的可观察性Rx.Observable.of([1,2,3,4,5])它发出一个单个项目(即一个数组),运算符是什么将这个可观察对象转换为一个发出5个单个项目(或任何数组由)?示例在.of上,但是通过promises获取数组也是一样的,可能还有很多其他示例。不建议将of替换为from 最佳答案 我想不出现有的运算符(operator)可以做到这一点,但你可以自己编一个:arrayEmitting$.concatMap(arrayValues=>Rx.Observable.merge(arrayValues.map(Rx.Obs

javascript - 如何在 redux-observable 的史诗中执行副作用?

在redux-observable中,史诗接受Action流并返回新的Action流。在我的用例中,我需要在调度某些操作后发送分析事件,然后什么也不做。使用redux-saga,我可以使用takeEvery来监听那个Action,并在saga函数中执行副作用:function*saga(){yieldtakeEvery('SOME_ACTION',function*(){sendAnalytics();})}但是我怎样才能用redux-observable实现同样的效果呢?有很多副作用,不需要调度新操作,如初始化插件、日志记录、设置cookie等......如果它是这两个库的反模式,那

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 - 为什么在使用@angular/redux-store 中的@select 时,Angular 守卫的行为会有所不同

我有一个使用两个守卫的Angular设置。canLoad和canActivate两者都通过@select从@angular-redux/store获取相同的可观察值问题:为什么canActivate与@select返回的可观察对象一起工作,而canLoad会中断所有路由然后呢?这两个守卫有什么区别?相关Angular问题:https://github.com/angular/angular/issues/18991auth.guard.ts@Injectable()exportclassAuthGuardimplementsCanLoad,CanActivate{@select()re

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 - 如何重启或刷新 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