Angular 2导入Observable的共享运算符
发布时间:2020-12-17 17:01:38 所属栏目:安全 来源:网络整理
导读:我试图使用Observers的共享运算符,但它不起作用: 我的代码: import { Injectable } from '@angular/core';import { Observer } from 'rxjs/observer';import { Observable } from 'rxjs/observable';import 'rxjs/add/operator/share';@Injectable()export
我试图使用Observers的共享运算符,但它不起作用:
我的代码: import { Injectable } from '@angular/core'; import { Observer } from 'rxjs/observer'; import { Observable } from 'rxjs/observable'; import 'rxjs/add/operator/share'; @Injectable() export class LoadingService { private _observer: Observer<string>; loading$: Observable<string>; constructor() { this.loading$= new Observable<string>( observer => this._observer = observer).share(); } toggleLoadingIndicator(name) { if (this._observer) { this._observer.next(name); } } } 当我调用.share();我得到错误:TypeError :(中间值).share不是一个函数. 在其他情况下,我成功导入例如map运算符,并正常使用如下: import 'rxjs/add/operator/map'; this._http.get(this._url,{ headers: this._headers }).map(r => r.json()).subscribe(json => { console.log(json); this.isValid = true; }); 因此,即使我尝试使用map运算符来证明导入,在第一个场景中也是如此.loading $= new Observable< string>(observer => this._observer = observer).map(n => n );我犯了同样的错误. 解决方法
iuristona的答案有效,但仅仅因为你导入了整个图书馆:
import { Observable } from 'rxjs/Rx'; 通过仅从’rxjs / Observable’模块导入,您只导入了一些方法.移动用户将欣赏只导入您需要的方法而不是整个库.你可以这样做: import { Observable } from 'rxjs/Observable'; import 'rxjs/add/operator/debounceTime'; // added method import 'rxjs/add/operator/map'; // added method 希望有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |