typescript – Angular2 Observable.forkJoin的可观察变量 – Re
发布时间:2020-12-17 09:27:02 所属栏目:安全 来源:网络整理
导读:我想请你帮忙.我省略了我认为不重要的代码.让我们想象包含服务调用的TS文件: // file:someService.ts @Injectable()export class SomeService { method1(){ var observable = this.http.get(someUrl) .map((res: Response) =MyClass[]res.json()); return
我想请你帮忙.我省略了我认为不重要的代码.让我们想象包含服务调用的TS文件:
// file:someService.ts @Injectable() export class SomeService { method1(){ var observable = this.http.get(someUrl) .map((res: Response) =><MyClass[]>res.json()); return observable; } method2(){ // Similar to method1 } } // file:someComponent.ts 请注意,this.method1observable和method2observable可以从父(root)组件正确分配,其类型为Observable. import {Observable} from 'rxjs/Observable'; export class SomeClass { public m1: Observable<MyClass[]>; public m2: Observable<AnotherClass[]> ngOnInit() { Observable.forkJoin(this.m1,this.m2) //<- ERROR HERE .subscribe(data => { this.myFunction(data[0],data[1]); requestAnimationFrame(this.renderLoop); }); } } 我得到“未捕获ReferenceError:Observable未定义”.
您可以尝试以这种方式导入:
import {Observable} from 'rxjs/Rx'; 代替: import {Observable} from 'rxjs/Observable'; 您还应该使用一个数组来为forkJoin方法提供可观察值: ngOnInit() { Observable.forkJoin([this.m1,this.m2]) .subscribe(data => { this.myFunction(data[0],data[1]); requestAnimationFrame(this.renderLoop); }); } 并且不要忘记在@Component中指定输入: @Component({ inputs: ['m1','m2'] }) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |