草庐IT

rxjs - RxJS 中通知的用例是什么?

我对基本的RxJS概念有点熟悉,比如Observables、Observers和Subjects,但是RxJSNotifications概念对我来说是全新的。它有什么用?我应该什么时候使用它? 最佳答案 您引用的文档提到:Thisclassisparticularlyusefulforoperatorsthatmanagenotifications,likematerialize,dematerialize,observeOn,andothers.Besideswrappingtheactualdeliveredvalue,ital

javascript - RXJS:如何以随机间隔(在指定范围内)生成数字流?

我想使用RXJS设置一个ORDERED数据流,它以随机间隔(比如每1-5秒)发出一个数字,我想将其用作时间随机化数据源来测试RXJS的其他部分。以下代码以随机顺序生成项目(由于延迟),但我希望顺序只保留随机时间。functionrandomDelay(bottom,top){returnMath.floor(Math.random()*(1+top-bottom))+bottom;}varsource=Rx.Observable.range(1,10).flatMap(function(x){returnRx.Observable.of(x).delay(randomDelay(100

javascript - 为什么一个 RxJS Subject 比多个事件监听器更快?

我最近发现页面的性能受到在其模板上多次使用的AngularDirective(指令)的极大阻碍。在以下代码中找到了性能较慢的原因:@HostListener('window:keydown',['$event'])privatekeydown(e:KeyboardEvent){this.doSomething(e);}我怀疑问题可能是由于在窗口按键事件上注册了多个事件监听器引起的,因为每次在页面上重复该指令时都会注册一个新的事件监听器。为了验证该理论,我创建了一个带有RxJS主题的服务来处理该键盘事件:@Injectable()exportclassKeyboardService{co

javascript - 使用 RxJS 5 可观察对象的延迟模式

对于任意promise实现,延迟模式(不要与antipattern混淆)可能如下所示:constdeferred=newDeferred;...//scopeswhere`deferred`objectreferencewaspassedbeforepromisesettlementdeferred.promise.then((result)=>{...},(error)=>{...});...deferred.resolve(...);//doesn'taffectpromisestatedeferred.reject();...//afterpromisesettlementdef

javascript - RxJS:如何不订阅初始值和/或未定义?

作为RxJS的新手,我经常创建一个主题,它在未来拥有值(value),但最初是undefined。它只能是undefined第一次。我目前使用filter来跳过undefined值,但这非常麻烦,因为我只需要一次无处不在。(也许我在这里做错了什么?)只有在onNext获得第一个值后,我才能以某种方式订阅mySubject吗?varmySubject=newRx.BehaviorSubject(undefined);mySubject.filter(function(value){returnvalue!==undefined;}).subscribe(function(value){/

javascript - 如何在 rxjs 中做链式序列

我想做这样的事:this._myService.doSomething().subscribe(result=>{doSomething()});.then(()=>dosthelse()).then(()=>dosanotherthing())所以我想像promise的那样链接.then。我将如何在Rxjs中做到这一点?this._myService.getLoginScreen().subscribe(result=>{window.location.href=MyService.LOGIN_URL;///Iwouldliketowaitforthesitetoloadandale

javascript - RxJs 捕获错误并继续

我有一个要解析的项目列表,但其中一个项目的解析可能会失败。捕获错误但继续执行序列的“Rx-Way”是什么代码示例:varobservable=Rx.Observable.from([0,1,2,3,4,5]).map(function(value){if(value==3){thrownewError("Valuecannotbe3");}returnvalue;});observable.subscribe(function(value){console.log("onNext"+value);},function(error){console.log("Error:"+error.

javascript - RxJS - 发生错误时可观察对象未完成

当我从头开始创建一个可观察对象并出现观察者错误,然后完成时,永远不会调用订阅的完成部分。varobserver=Rx.Observable.create(function(observer){observer.onError(newError('no!'));observer.onCompleted();})observer.subscribe(function(x){console.log('succeededwith'+x)},function(x){console.log('erroredwith'+x)},function(){console.log('completed')}

javascript - 如何为 RxJS 中的两个可观察对象设置 'wait'

在我的应用程序中,我有类似的东西:this._personService.getName(id).concat(this._documentService.getDocument()).subscribe((response)=>{console.log(response)this.showForm()});//Output://[getnameResult]//[getDocumentResult]//Iwant://[getnameResult][getDocumentResult]然后我得到两个分开的结果,第一个是_personService,然后是_documentServic

javascript - RxJs 管道和可出租运算符 `map` : 'this' context of type 'void' is not assignable to method's 'this' of type 'Observable<{}>'

我有一个非常基本的例子,它使用可出租运算符map与pipe来自rxjs@5.5:import{map}from'rxjs/operator/map';leto=of(1,2,3,4).pipe(map((v)=>v*2));但它会产生错误Error:(34,5)TS2684:The'this'contextoftype'void'isnotassignabletomethod's'this'oftype'Observable'.这里有什么问题? 最佳答案 应从rxjs/operators导入可出租实例运算符:import{map}f