いくつかのオブザーバブルを取得するのに問題があります。私は2つの 観測点を一緒に素敵な場所に置くことはできません。彼らは自分自身でうまく動作しますが、私は に両方の値が必要です。Angular2 observablesをマージする
db.glass.subscribe((glass: GlassData[]): void => {
console.log(glass); // This prints
});
db.cassette_designs.subscribe((cassettes: CassetteData[]): void => {
console.log(cassettes): // This prints
});
観測とそのすべて熟知していない、私が試した最初のものは、他の内部 ネスティング1だったが、内側のものは何もしていないようです。
db.glass.subscribe((glass: GlassData[]): void => {
console.log(glass); // This prints
db.cassette_designs.subscribe((cassettes: CassetteData[]): void => {
console.log(cassettes): // This doesn't
});
});
これはので、私はそこに観測を組み合わせること 良い方法だった、それは少数がある判明かどうかを確認するためにGoogleで検索されるビット愚かに思えました。私は zip
とforkJoin
を試しました。彼らは私がやりたいものの中で最も好きだったと思っていましたが、 はどちらもうまくいきませんでした。
Observable.zip(db.cassette_designs, db.glass, (cassettes: CassetteData[], glass: GlassData[]): void => {
console.log(cassettes); // doesn't print
console.log(glass ); // doesn't print
});
Observable.forkJoin([ db.cassette_designs, db.glass ]).subscribe((data: any): void => {
console.log(data); // doesn't print
});
それは私が、私はいくつかの時点で警告やエラーのいくつかの並べ替えを得るだろうと思っているだろう 私が正しく関数を呼び出していないよほど単純なものでもよいが、可能性があります。 tsc
はコードに問題はなく、ChromeまたはFirefoxのいずれでも、 コンソールのメッセージは表示されません。
更新
私はcombineLatest
を試してみたが、それはまだ、コンソールには何も表示されません。私は何かが欠けているに違いないが、何が分からないのか。彼らは個別に働く。
Observable.combineLatest(db.cassette_designs, db.glass, (cassettes: CassetteData[], glass: GlassData[]): void => {
console.log(cassettes); // doesn't print
console.log(glass ); // deson't print
});
観測は、次のように作成されています
...
public Listen(event: string): Observable<Response>
{
return new Observable<Response>((subscriber: Subscriber<Response>): Subscription => {
const listen_func = (res: Response): void => subscriber.next(res);
this._socket.on(event, listen_func);
return new Subscription((): void =>
this._socket.removeListener(event, listen_func));
});
}
...
その後、実際に私は、関連するイベントに応答を聞く送る観測を取得します。例えば
...
public cassette_designs: Observable<CassetteData[]>;
...
this.cassette_designs = _socket.Listen("get_cassette_designs")
.map((res: Response) => res.data.data);
プロジェクトが何であるかについてのSO好奇心:
は、最終的なコードなので!カセットとガラスは一緒に遊んでいる!大好きです! –
これはユーザーがドアを設計できるオンラインツールでした。 – Hector