加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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未定义”.
你不知道我做错了什么吗?我看到一些示例,其中Observable.forkJoin在服务中被调用.但是如果我想在组件中调用它呢?

您可以尝试以这种方式导入:
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']
})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读