草庐IT

rxjs_observable

全部标签

javascript - 在 RxJS 中合并两个对象

我在服务内部使用rxjs和angular2。我有一些可以通过get请求访问的json。private_campInfoUrl='api/campInfo/campInfo.json';constructor(private_http:Http){}getAvailableCamps(){returnthis._http.get(this._campInfoUrl).map((response:Response)=>response.json())此时我拥有所有数据。但是要进入这个对象{"search":{"startDate":"2016-06-07","endDate":"2016-

javascript - Observable 对多个订阅者执行一次

我有一段代码要定期执行,直到所有订阅者都取消订阅。//Thisfunctionshallbecalled*once*pertick,//nomatterthequantityofsubscriber.functiondoSomething(val){console.log("doingsomething");returnval;}observable=Rx.Observable.timer(0,1000).map(val=>doSomething(val));constfirst=observable.subscribe(val=>console.log("first:",val));

javascript - 将某些 observableArray 对象属性转换为 observable

假设我有这个相同类型对象的数组:varpeople=[{status:0,name:"name1"},{status:1,name:"name2"}];我不仅希望它是observableArray,而且我还希望仅观察每个对象的状态属性。假设可以添加或删除对象本身。这些对象中的任何一个的名称属性都不会改变,所以我真的不需要观察名称,但每个对象的状态可能会改变,因此让它可观察会很酷。是否可以使用带有一些很酷的hack语法的knockout实用程序来映射它,或者我是否必须遍历每个对象并将其状态属性映射到可观察的,或者让整个数组及其对象属性都可观察? 最佳答案

javascript - 使用 RxJS 创建可过滤列表

我正在尝试进入响应式编程。我一直使用map、filter和reduce等数组函数,并且喜欢我可以在不创建状态的情况下进行数组操作。作为练习,我尝试在不引入状态变量的情况下使用RxJS创建一个可过滤列表。最后它应该像这样工作:我知道如何使用简单的JavaScript或AngularJS/ReactJS来完成此操作,但我正在尝试仅使用RxJS并且不创建状态变量来完成此操作:varlist=['John','Marie','Max','Eduard','Collin'];Rx.Observable.fromEvent(document.querySelector('#filter'),'ke

javascript - RXJS if with observable 作为条件

我想使用Rx.Observable.if在条件可观察对象解析为true或false时运行两个可观察对象之一。我想要实现的是这样的:Rx.Observable.if(conditionalObservable.map(x=>x.length>0),firstObservable,secondObservable).subscribe()如果conditionalObservable发送一个next,然后以真值完成,firstObservable应该运行,否则,secondObservable应该运行。显然这行不通,因为Rx.Observable.if需要一个有条件的函数,而不是一个可观察

javascript - RxJS 先 take 然后 throttle 等待

我想使用RxJS-DOM观察mousewheel事件,这样当第一个事件触发时,我转发它然后删除所有值,直到后续值之间的延迟超过先前指定的持续时间。我想象的运算符可能看起来像:Rx.DOM.fromEvent(window,'mousewheel',(e)=>e.deltaY).timegate(500/*ms*/)想象一下下面的数据流:0-(200ms)-1-(400ms)-2-(600ms)-3发送的值是数字,时间描述了下一个值到达所需的时间。由于0是第一个值,它会被发出,然后直到3的所有值都会被丢弃,因为后续值之间的各个延迟不大于500ms。与throttle不同,无论是否发出最后

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 - RxJS:只有在不同的情况下才去抖流

我想去抖一个流-但前提是源值与以前相同。我如何使用RxJS5做到这一点?如果值相同并且我之前在指定的时间窗口内发出过,我不想发出值。我应该能够使用流中的值-或者比较类似于distinctUntilChanged的​​函数。 最佳答案 这取决于您要做什么;当我尝试做类似的事情时,我遇到了这个问题,基本上是去抖动,但对对象的不同值使用不同的去抖动。在尝试了jayphelps的解决方案后,我无法让它按照我想要的方式运行。经过多次来回,结果发现有一种内置的简单方法可以做到这一点:groupby。constpriceUpdates=[{bid

javascript - Event.observe 'change' 事件未在 IE 中触发

我用于更改选择菜单的原型(prototype)事件监听器未在IE中触发。Event.observe('use_billing','change',Checkout.getBillingData);这在Firefox中工作正常(当然),但在IE中没有任何反应(当然)-我已经用谷歌搜索了一段时间,但我没有找到解决这个问题的合适方法。我读到有问题,但我发现没有任何有用的方法来规避这个问题并让它发挥作用。我真的在努力避免使用内联事件触发器,因为它们很突兀,并且会导致文档困惑且容易出错:....任何想法都会很棒-这是阻止该项目从测试版进入生产的唯一因素。 最佳答案

javascript - KnockoutJS observableArray 在内部 observable 更改时更新

我需要知道如何在observableArray中更改observable时触发observableArray的更新。我有一个代表二叉树的observableArray。我正在使用存储映射函数来获取和设置数组中的值,因此它必须是平衡的,即使它可能只包含一个空的observable。例如。nodes()[9]可能为空,但当该节点更新时,我会调用nodes()[9](setnewvalue)并需要触发observableArray进行更新 最佳答案 最终在observableArray上使用.replace()