草庐IT

javascript - RxJS:区分单击和拖动

我有一个AngularJS组件,它应该对单击或拖动(调整区域大小)作出react。我开始在我的应用程序中使用RxJS(ReactiveX),所以我试图找到一个使用它的解决方案。请求的Angular方面是次要的......为了简化问题(并训练自己),我根据rx.angular.js拖放示例制作了一个slider指令:http://plnkr.co/edit/UqdyB2请参阅Slide.js文件(其他代码用于其他实验)。这个逻辑的代码是:function(scope,element,attributes){varthumb=element.children(0);varsliderPos

javascript - 强制完成 rxjs 观察者

我有一个rxjs观察器(实际上是一个Subject),它永远跟踪一个文件,就像tail-f一样。例如,它非常适合监控日志文件。这种“永远”的行为对我的应用程序来说很好,但对测试来说却很糟糕。目前我的应用程序可以运行,但我的测试永远挂起。我想强制观察者更改提前完成,因为我的测试代码知道文件中应该有多少行。我该怎么做?我尝试在我返回的Subject句柄上调用onCompleted但此时它基本上被转换为观察者并且你不能强制它关闭,错误是:Object#hasnomethod'onCompleted'这是源代码:functionObserveTail(filename){source=newR

javascript - 如何在 RxJS 5 中创建 Hot Observable

我使用RxJS4创建HotObservable,就像officialdocumentation中描述的那样但是RxJS5migrationguid没有解释如何创建HotObservable。constsource=Observable.create((observer)=>{asynCall((data)=>{observer.onNext(data)})})constpublished=source.publish()published.connect()published.subscribe((data)=>{console.log(data)})使用Rx5我遇到了以下错误:未捕获

javascript - 等待用 RxJs 解决的 promise

我正在尝试使用RxJSv5beta为表单实现“保存类型”功能.当用户在文本字段中输入时,数据应该被发送到后端。我正在创建一个Rx.Subject来为新用户输入触发新事件(next())并将其与HTTP请求一起发布。我以这个问题为起点:RxJSwaituntilpromiseresolved但是,使用这篇文章中的解决方案,同时向后端发送请求。我的目标是只发送一个请求并推迟后续请求,直到正在运行的请求完成。完成请求后,应发出最后一个未决事件(就像debounceTime中的情况一样)以下代码段中的示例函数使用链接的SO问题中的方法。这将发送对所有输入值的请求。workaround函数使用存

javascript - RxJS:如何包装和观察字符串的变化?

RxJS:如何将原始类型(例如string)包装在Observable中并监听该原始类型的变化?考虑以下示例。setTimeout模拟一些改变字符串s的外部事件。但是,console.log仅触发一次,而不是在调用setTimeout之后触发。这是为什么?lets="HelloWorld";Observable.of(s).subscribe(val=>{console.log(val);});//someexternaleventchangesvariablessetTimeout(()=>{s="Wat?";},1000);//Output:prints"HelloWorld"to

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

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