Questions tagged «rxjs»

JavaScript的响应式扩展(RxJS)是一组库,用于使用可观察的集合和Array Extras样式组成来组成异步和基于事件的程序。

3
从rxjs导入Observable的最佳方法
在我的angular 2应用程序中,我有一个使用库中Observable类的服务rxjs。 import { Observable } from 'rxjs'; 目前,我正在使用Observable以便可以使用该toPromise()功能。 我在另一个地方的另一个StackOverflow问题中读到,以这种方式导入并从中rxjs/Rx导入也会从rxjs库中导入大量不必要的内容,这将增加页面加载时间和/或代码库。 我的问题是,什么是最好的导入方式,Observable以便我可以使用该toPromise()功能而不必导入其他所有内容?


3
如何从angular2中的可观察数据中获取数据
我正在尝试打印使用中的http通话结果Angularrxjs 考虑以下代码 import { Component, Injectable, OnInit } from '@angular/core'; import { Http, HTTP_PROVIDERS } from '@angular/http'; import 'rxjs/Rx'; @Injectable() class myHTTPService { constructor(private http: Http) {} configEndPoint: string = '/my_url/get_config'; getConfig() { return this.http .get(this.configEndPoint) .map(res => res.json()); } } @Component({ selector: 'my-app', templateUrl: './myTemplate', providers: [HTTP_PROVIDERS, myHTTPService], }) …

2
fromPromise在Observable类型上不存在
在使用rxjs的Angular 2中,我试图将Promise转换为Observable。由于许多在线指南的显示我用fromPromise的Observable。哪个抛出错误: Property 'fromPromise' does not exist on type 'typeof Observable'. Observable的输入方式如下: import { Observable } from "rxjs/Observable"; 尝试fromPromise像其他运算符一样导入会导致错误: import 'rxjs/add/operator/fromPromise'; 即使我抑制打字稿错误,它仍然会导致错误: (<any>Observable).fromPromise 错误: Uncaught (in promise): TypeError: __WEBPACK_IMPORTED_MODULE_3_rxjs_Observable__.Observable.fromPromise is not a function 此处在rxjs存储库中报告了类似的问题,但那里也没有解决方案。

3
类型“ Observable <Response>”上不存在属性“ toPromise”
import { Headers, Http } from '@angular/http'; @Injectable() export class PublisherService{ private publishersUrl = 'app/publisher'; constructor(private http: Http) { } getPublishers(): Promise&lt;Publisher[]&gt;{ return this.http.get(this.publishersUrl) .toPromise() .then(response =&gt; response.json().data) .catch(this.handleError); } } 我收到此错误: 属性'toPromise'在'Observable'类型上不存在。

7
如何在RxJS中“等待”两个可观察对象
在我的应用程序中,我有类似以下内容: this._personService.getName(id) .concat(this._documentService.getDocument()) .subscribe((response) =&gt; { console.log(response) this.showForm() }); //Output: // [getnameResult] // [getDocumentResult] // I want: // [getnameResult][getDocumentResult] 然后我得到两个分开的结果,首先是_personService,然后是_documentService。如何在调用this.showForm()完成之前等待两个结果,然后操纵每个结果。

20
TypeError:您提供了一个无效的对象,该对象应在其中流。您可以提供一个Observable,Promise,Array或Iterable
我正在尝试map从服务呼叫中获取但出现错误。看着subscribe没有在角度2中定义?它说,要订阅,我们需要从运营商内部返回。我也有return语句。 这是我的代码: checkLogin(): Observable&lt;boolean&gt; { return this.service.getData() .map( response =&gt; { this.data = response; this.checkservice = true; return true; }, error =&gt; { // debugger; this.router.navigate(['newpage']); console.log(error); return false; } ) .catch(e =&gt; { return e; }); } 错误日志: TypeError: You provided an invalid object where a stream was expected. …

2
.unsubscribe与.take(1)之间的区别
我想知道,订阅后立即使用.take(1)和.unsubscribe何时unsubscribe使用之间在性能上是否有任何区别: var observable = Rx.Observable.interval(100); 第一: var subscription = observable.subscribe(function(value) { console.log(value); }).unsubscribe(); 第二: var subscription = observable.take(1).subscribe(function(value) { console.log(value); }); 关于它的任何想法都会对性能产生不同的影响吗?
72 rxjs  observable  rxjs5 

1
RxJS中的“ Scheduler”是什么
我在文档中经常看到“调度程序”一词。 但是,这个术语是什么意思?我什至不知道如何使用所谓的Scheduler。官方文档没有告诉我Scheduler确切的含义。这只是RxJS中的通用概念还是特定概念?
71 rxjs 

1
RxJS中的链接可观察对象
我正在学习RxJS和Angular2。比方说,我有一个带有多个异步函数调用的promise链,这取决于前一个的结果,如下所示: var promiseChain = new Promise((resolve, reject) =&gt; { setTimeout(() =&gt; { resolve(1); }, 1000); }).then((result) =&gt; { console.log(result); return new Promise((resolve, reject) =&gt; { setTimeout(() =&gt; { resolve(result + 2); }, 1000); }); }).then((result) =&gt; { console.log(result); return new Promise((resolve, reject) =&gt; { setTimeout(() =&gt; { resolve(result + 3); …

4
冷热观测:是否存在“热”和“冷”运算符?
我回顾了以下SO问题: 什么是冷热观测? 总结一下: 当一个冷的可观察对象有一个观察者来消耗它们时,它会发出它的值,即观察者接收到的值的顺序与订阅时间无关。所有观察者将使用相同的值序列。 一个热的可观察对象发出的值与其订阅无关,即观察者收到的值是订阅时间的函数。 但是,我觉得热还是冷仍然是造成混乱的根源。所以这是我的问题: 默认情况下,所有rx观测值是否都是冷的(主题除外)? 我经常读到事件是热可观察物的典型隐喻,但我也读到它Rx.fromEvent(input, 'click')是冷可观察物(?)。 是否有Rx运算符将冷的可观察物转换为热的可观察物(publish和share除外)? 例如,它如何与Rx运算符一起使用withLatestFrom?让我们cold$在某处订阅一个冷的观察。会sth$.withLatestFrom(cold$,...)很热吗? 或者,如果我sth1$.withLatestFrom(cold$,...), sth2$.withLatestFrom(cold$,...)同时订阅sth1和sth2,那么我是否总是会看到相同的值sth? 我以为Rx.fromEvent可以创建冷的可观察物,但事实并非如此,如答案之一所述。但是,我仍然对这种行为感到困惑:https : //codepen.io/anon/pen/NqQMJR? editors =101。不同的订阅从相同的可观察值中获得不同的值。不是click事件共享?

2
何时应针对特定副作用创建新的订阅?
上周,我回答了一个RxJS 问题,在那里我与另一位社区成员进行了讨论:“我应该为每种特定的副作用创建订阅,还是应该总体上减少订阅?” 我想知道在完整的反应式应用方法中使用什么方法,或者何时从一种方法切换到另一种方法。这将帮助我甚至其他人避免不必要的讨论。 设置信息 所有示例均在TypeScript中 为了更好地关注问题,不使用生命周期/构造函数进行订阅并保持框架无关 想象一下:在构造函数/生命周期init中添加了订阅 想象一下:取消订阅是在生命周期中完成的 什么是副作用(角度样本) 用户界面中的更新/输入(例如value$ | async) 组件的输出/上游(例如@Output event = event$) 不同层次结构上不同服务之间的交互 示例用例: 两个功能: foo: () =&gt; void; bar: (arg: any) =&gt; void 两个源可观察到的: http$: Observable&lt;any&gt;; click$: Observable&lt;void&gt; foohttp$发出后调用,不需要任何值 bar在click$发出后被调用,但需要的当前值http$ 案例:为每种特定副作用创建订阅 const foo$ = http$.pipe( mapTo(void 0) ); const bar$ = http$.pipe( switchMap(httpValue =&gt; click$.pipe( …

1
为什么setTimeout()会使我的应用程序变慢,而Rxjs timer()。subscribe(…)却没有?
我有一个组件,它以100毫秒的间隔“延迟加载”一些注释。 当我使用setTimeout时,它确实很慢。 零件 &lt;div *ngFor="let post of posts"&gt; &lt;app-post [post]="post" &gt;&lt;/app-post&gt; &lt;/div&gt; 这使我的应用程序延迟(平均fps 14,空闲时间51100ms): while(this.postService.hasPosts()){ setTimeout(()=&gt; { this.posts.push(this.postService.next(10)); },100); } 这使我的应用程序流畅(平均fps 35,空闲时间40800ms) while(this.postService.hasPosts()){ timer(100).subscribe(()=&gt; { this.posts.push(this.postService.next(10)); }); } 有什么解释,为什么rxjs计时器能更好地工作? 我使用firefox进行了运行时分析。在第一个示例中,帧速率降至14 fps;在另一个示例中,帧速率降至35 fps。 甚至空闲时间也减少了20%。 此方法更加平滑(平均fps 45,空闲时间13500ms): interval(100).pipe(takeWhile(this.postService.hasPosts()).subscribe(()=&gt; { this.posts.push(this.postService.next(10)); }); }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.