草庐IT

rxjs_observable

全部标签

javascript - 从回调中创建 Observable

我有一个authguard,当网站被访问并且用户已经登录时,它需要一个异步响应true/false。我正在使用Firebase的onAuthStateChanged(linktodocs)并且它使用回调函数。我怎样才能把我的isLoggedIn()方法转化为可以返回的东西Observable?typescript:getisLoggedIn():Observable{//wantsomethinglikethis:returnObservable.fromCallback(firebase.auth().onAuthStateChanged).map(user=>!!user);//t

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

javascript - ngx-datatables 在排序时给出 "rxjs_1.fromEvent is not a function"错误

我只是按照演示来展示一个简单的数据表。这是我的代码:columns=[{name:'ID',prop:'id'},{name:'StreetAddress',prop:'address.street'},{name:'Suburb',prop:'address.suburb'},{name:'State',prop:'address.state'},{name:'ManagerName',prop:'manager.name'},{name:'ManagerCompany',prop:'manager.company'},];排序确实有效,但是,当我单击列对记录进行排序时,我也会收到此

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 - Ember.observer 在初始化时运行

我正在尝试构建一个没有原型(prototype)扩展的Ember应用程序,Ember文档提供了如何执行此操作的示例,但它们不包括我希望我的观察者何时在init上运行的示例。所以目前如果我的代码是这样写的:fullNameChanged:function(){//dealwiththechange}.observes('fullName').on('init')我能找到的唯一例子是这样写的:Person.reopen({fullNameChanged:Ember.observer('fullName',function(){//dealwiththechange})});那么我如何告诉此

javascript - 如何判断 RxJS 的版本号

如何从代码中判断安装的RxJS版本?例如:varRx=require('rxjs/Rx');console.log(Rx.rev);//undefinedconsole.log(Rx.version);//undefined第二个问题:如何判断是不是rxjs5? 最佳答案 如果您使用NPM安装,这将显示所有NPM包版本。npmlist--depth=0如果你省略--depth那么你也会得到他们所有的依赖。 关于javascript-如何判断RxJS的版本号,我们在StackOverflo

javascript - Event.observe 函数 - 按类而不是 id 观察元素

有原型(prototype)js函数:Event.observe(元素、事件名称、处理程序)这里的元素是指元素的ID。是否可以将元素的class放在这里?我从第三方获得了这个元素,只有class属性。 最佳答案 $$可以通过css选择器检索元素,包括通过periodnotation按类检索元素。:$$('.myClass');//arraywithallelementsthathaveclass"myClass"为了回答您的问题,Event.observe是observe的“静态”版本(出于所有意图和目的)。作为方便原型(proto