jjzjj

Observables

全部标签

javascript - Observables "retryWhen"延迟

如何在retryWhen中设置延迟?import'rxjs/add/operator/retry';import'rxjs/add/operator/retrywhen';...constructor(http:Http){varheaders=newHeaders();headers.append('Content-Type','text/plain');http.post('https://mywebsite.azurewebsites.net/account/getip',"",{headers:headers}).retryWhen(errors=>{returnerrors.

javascript - 在 Angular 中渲染基于时间的 Observables 而无需压倒性的变化检测

我们的Angular应用程序中有许多组件需要每秒定期显示每个组件唯一的新值(倒计时、时间戳、耗时等)。最自然的方法是创建使用RxJStimer和interval工厂函数的可观察对象。但是,这些会在整个应用程序的每个时间间隔触发Angular变化检测,调用时间间隔函数的次数。如果我们在页面上有几十个组件,这会触发整个应用程序每秒或每个时间段数十次的变化检测,从而产生很大的性能开销。到目前为止,我尝试了两种方法来解决这个问题。对任何一个的好的回答都会非常有帮助——最好是两者兼而有之。我想避免手动触发变更检测,而是依赖于Observables发出的新值,并让异步管道/OnPush变更检测策略

javascript - 将 observables 数组传递给 zip

我有一个observable数组,想传递给Rx.Observable.zip。我试过了,但根本没有订阅。代码片段(仅作为示例):constsourceOne=Rx.Observable.of('Hello');constsourceTwo=Rx.Observable.of('World!');constsourceThree=Rx.Observable.of('Goodbye');constsourceFour=Rx.Observable.of('World!');constarr$=[sourceOne,sourceTwo,sourceThree,sourceFour];constz

javascript - 将 Observables 实现到持久队列库中

目前正在编写一个小型持久队列库,用于将行读取/写入文本文件。这是添加方法,例如:Queue.prototype.add=function(line,cb){getLock(this,err=>{if(err){this.emit('error',err);releaseLock(err,cb);}else{fs.appendFile(this.filepath,line,err=>{err&&this.emit('error',err);releaseLock(err,cb);});}});};我觉得很尴尬的是支持事件发射器和回调(或事件发射器和promise)。换句话说,对于队列中的

javascript - 需要帮助数据与 Observables 的 Angular 绑定(bind)

这是使用Observables绑定(bind)数据的正确方法吗?如果是,我的代码还有什么问题使selectedCourse变量等于未定义?this.golfDataService.getGolfData(id).subscribe(data=>{this.selectedCourse=data.dataconsole.log(data.data)})setTimeout(function(){console.log(this.selectedCourse)},2000);}我希望两个console.log语句返回相同的东西,但只有第一个console.log返回数据,这是一个包含高尔夫

javascript - RxJS:如何让一个 Observer 处理多个 Observables?

我正在使用调用我实现的函数的框架。我希望将此函数的参数转换为Observable,并通过一系列Observers发送。我以为我可以为此使用Subject,但它的行为并不像我预期的那样。为了澄清,我有类似下面的代码。我认为下面的Option1会起作用,但到目前为止,我正在接受Option2,这看起来一点也不符合习惯。vareventSubject=newRx.Subject();varresultSource=eventSubject.map(processEvent);varsubscription=resultSource.subscribe(function(event){cons

javascript - RxJS:如何使用 Observables 执行 "if"?

假设我有两个observable,如果另一个符合特定条件,我想监听一个observable的变化。我用zip尝试过,但似乎只有当bothobservables发生变化时,我才会收到通知,但如果条件另一个是正确的。我尝试过的:varfirstState=newRx.BehaviorSubject(undefined);varsecondState=newRx.BehaviorSubject(undefined);Rx.Observable.zip(firstState,secondState,function(first,second){return{first:first,second

javascript - Angular 2 rxjs 嵌套 Observables

我希望创建一个返回Observable的函数但在返回之前必须完成另一个异步任务(一个Observable),以便将值传递给返回的Observable.@Injectable()exportclassMyComponent{GetAuthToken=function():Observable{returnthis._storageService.GetAsString('authToken');}GetData=function(authToken):Observable{letheaders=newHeaders();headers.append('authToken',authTok

javascript - 取消订阅 RxJS Observables

我有这两个对象,我想停止监听它们的事件。我对observables和RxJS完全陌生,只是尝试使用Inquirer库。RxJSAPI供引用:http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html如何取消订阅这些类型的可观察对象?ConnectableObservable:ConnectableObservable{source:EventPatternObservable{_add:[Function],_del:[Function],_fn:undefined},_connection:ConnectDispo

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