2016-08-09 12 views
0

私はこのようにサブスクライブしている:私は代わりに矢印関数のコールバック関数を渡すとrxjs subscribeコールバック関数にコンテキストを設定する方法は?

this.test.subscribe(params => { 
 
    ...some code 
 
});

、コンテキストがありません。

サブスクライブ関数にコンテキストをバインドしたいのですが、私はそれを見ません。 は、それが可能に私は答えを試みますが、私はまだあなたが何を意味するかはかなりよく分からない

that = this

+0

「コンテキスト」とはどういう意味ですか?あなたは 'subscribe'の周りのスコープ内の変数を意味しますか?それとも、角度別の概念ですか? – Ptival

+0

スコープ内の平均変数。 –

答えて

2

ような何かをせずに行うようにすることです。あなたが書く

const v = 42; 
observable.subscribe(x => { 
    // here you have access to `v` 
}); 

しかし、あなたが書く:

{ 
    const v = 42; 
    observable.subscribe(f); 
} 

function f(x) { 
    // here you do not have access to `v` 
} 

そして、それはどのようにすべきです。 fに宣言スコープにない変数を表示させたい場合は、それらを引数にして適切に渡す必要があります。例えば:

{ 
    const v = 42; 
    observable.subscribe(x => f(x, v)); 
} 

function f(x, v) { 
    // here you **do** have access to `v` 
} 

それとも、あなたがキャプチャしたい変数のコンテキストでコールバックを定義することができる場合:

{ 
    const v = 42; 
    observable.subscribe(x => f(x)); 
    function f(x) { 
    // here you **do** have access to `v` because it is in scope 
    } 
} 

これは、あなたの質問にお答えしていますか?しかし、RxJSとは関係がありません。それらは、純粋なJavaScript(およびプログラミング言語)の概念です。

+1

ありがとう!それは私にとっては明らかです。 –

関連する問題