Tag: rxjs

如何获得RxJS Subject或Observable的当前值?

我有一个Angular 2服务: import {Storage} from './storage'; import {Injectable} from 'angular2/core'; import {Subject} from 'rxjs/Subject'; @Injectable() export class SessionStorage extends Storage { private _isLoggedInSource = new Subject<boolean>(); isLoggedIn = this._isLoggedInSource.asObservable(); constructor() { super('session'); } setIsLoggedIn(value: boolean) { this.setItem('_isLoggedIn', value, () => { this._isLoggedInSource.next(value); }); } } 一切都很好。 但是我有另一个不需要订阅的组件,只需要在某个时间点获取isLoggedIn的当前值即可。 我怎样才能做到这一点?

Node.js数据stream与观测数据

了解了Observables之后 ,我发现它们与Node.jsstream非常相似。 每当有新数据到达时,都有通知消费者的机制,发生错误或没有更多的数据(EOF)。 我很想了解两者之间的概念/function差异。 谢谢!

如何在Angular2中取消订阅

如何取消Angular2中的订阅? RxJS似乎有一个处置方法,但我不知道如何访问它。 所以我有代码可以访问一个EventEmitter并订阅它,就像这样: var mySubscription = someEventEmitter.subscribe( (val) => { console.log('Received:', val); }, (err) => { console.log('Received error:', err); }, () => { console.log('Completed'); } ); 我如何使用mySubscription取消订阅?

属性'catch'在types'Observable <any>'上不存在

在使用Http服务的Angular 2文档页面上,有一个例子。 getHeroes (): Observable<Stuff[]> { return this.http.get(this.url) .map(this.extractData) .catch(this.handleError); } 我克隆了angular2-webpack-starter项目并自己添加了上面的代码。 我导入Observable使用 import {Observable} from 'rxjs/Observable'; 我假设属性Observable也被导入( .map作品)。 看着rxjs.beta-6的更新日志,并没有提到有关catch 。

RxJS中的“Scheduler”是什么?

我在文档中经常看到Scheduler这个词。 但是,这个词是什么意思? 我甚至不知道如何使用所谓的Scheduler 。 官方文档没有告诉我一个Scheduler到底是什么。 这只是RxJS中的一个共同的概念或特定的概念?

Observable.of不是一个函数

我在我的项目中导入Observable.of函数有问题。 我Intellij看到的一切。 在我的代码中,我有: import {Observable} from 'rxjs/Observable'; 在我的代码中,我使用它: return Observable.of(res); 有任何想法吗?

RxJS:我将如何“手动”更新Observable?

我认为我必须误解一些基本的东西,因为在我看来,这应该是一个可观察的最基本的情况,但是对于我的生活,我无法弄清楚如何从文档中做到这一点。 基本上,我想能够做到这一点: // create a dummy observable, which I would update manually var eventObservable = rx.Observable.create(function(observer){}); var observer = eventObservable.subscribe( function(x){ console.log('next: ' + x); } … var my_function = function(){ eventObservable.push('foo'); //'push' adds an event to the datastream, the observer gets it and prints // next: foo } 但是我一直没能find像push这样的方法。 我使用这个为一个点击处理程序,我知道他们有Observable.fromEvent的,但我试图用它与React,我宁愿能够简单地更新数据stream在callback,而不是使用一个完全不同的事件处理系统。 所以基本上我想这个: $( "#target" ).click(function(e) […]

rxjs创build一次订阅configuration方法

我需要创build一个订阅到一个observable当它被第一次调用时立即处理。 有这样的事吗? 像observable.subscribeOnce(func) 我的用例,我正在快速路由处理程序中创build一个订阅,并且每个请求多次调用订阅。

属性'toPromise'在types'Observable <Response>'上不存在

import { Headers, Http } from '@angular/http'; @Injectable() export class PublisherService{ private publishersUrl = 'app/publisher'; constructor(private http: Http) { } getPublishers(): Promise<Publisher[]>{ return this.http.get(this.publishersUrl) .toPromise() .then(response => response.json().data) .catch(this.handleError); } } 我得到这个错误: “Observable”types的属性“toPromise”不存在

rxjs / Subject.d.ts错误:Class'Subject <T>'错误地扩展了基类'Observable <T>'

我从https://github.com/gopinav/Angular-2-Tutorials中提取了示例模板代码,并采取以下两个步骤开始 – npm install // worked fine and created node_modules folder with all dependencies npm start失败,下面的错误 – node_modules / rxjs / Subject.d.ts(16,22):错误TS2415:“主题”类错误地扩展了基类“可观察”。 财产“升降机”的types是不相容的。 types'(operator:Operator)=> Observable'不可赋值 键入'(operator:Operator)=> Observable'。 types“Observable”不可分配给“Observable”types。 types“T”不可分配给“R”types。 npm ERR! 代码ELIFECYCLE npm ERR! errno 2 我看到在subject.d.ts电梯宣言如下 – lift<T, R>(operator: Operator<T, R>): Observable<T>; 在Observable.ts中定义如下 – lift<R>(operator: Operator<T, R>): Observable<R> { 注意:1。我是Angular2的新手,想要掌握一些东西。 这个错误可能是由于lift方法的不兼容定义造成的 我通过https://github.com/Microsoft/TypeScript/issues/2073阅读 如果我需要安装一些不同版本的rxjs,那么请告诉如何卸载并安装正确的rxjs。 编辑1:我可能在这里回应有点晚,但即使使用打字机2.3.4或rxjs […]