2016-08-09 8 views
0

나는 이렇게 가입이 :rxjs subscribe 콜백 함수에 컨텍스트를 설정하는 방법은 무엇입니까?

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

내가 화살표 기능을 대신 콜백 함수를 전달하면, 컨텍스트가 없습니다.

구독 기능에 컨텍스트를 바인딩하고 싶지만 절대로 볼 수 없습니다. 은 가능한 내가 대답을 시도하지만 난 여전히 당신이 무슨 뜻인지 확실히 모르겠어요

that = this

+0

'context' 란 무엇을 의미합니까? '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)); 
    function f(x) { 
    // here you **do** have access to `v` because it is in scope 
    } 
} 

이 귀하의 질문에 대답합니까 :

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

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

또는 경우에 당신은 당신이 캡처 할 변수의 맥락에서 콜백을 정의 할 수 있습니다? RxJS와는 아무런 관련이 없습니다. 그것들은 순수한 JavaScript (및 프로그래밍 언어) 개념입니다.

+1

고마워요! 나에게 분명하다. –