3

Subscribeメソッドを2回呼び出すことは可能ですか?

ファクトリにデータを保存するAPIファクトリを構築しようとしていますが、そのデータは各ajax呼び出しで異なるコンポーネントで使用できます。

工場

export class api {

    result = [];

    constructor (protected http: Http) { }

    getData ()
    {
        return this.http.get('./friends.json').map((res: Response) => res.json()).subscribe(res => this.result = res);
    }
}

subscribeメソッドを再度呼び出しているテストコンポーネント

export class TestPage {

    showListResult; 

    constructor (protected api: api) {

        this.api.getData().subscribe(res => this.showListResult = res)
    }

}
4

2 に答える 2

3

新しい Observable ラッパーを返すことができます。このようなものが動作するはずです:

import {Observable} from 'rxjs/Observable'

export class api {

    result = [];

    constructor (protected http: Http) { }

    getData () {
        return new Observable(observer => {
            this.http.get('./friends.json')
                .map((res: Response) => res.json())
                .subscribe(res => {
                    this.result = res;
                    observer.next(res);
                    observer.complete();
                });
        });
    }
}
于 2016-02-14T21:45:38.477 に答える