2016-08-09 16 views
0

Ich habe ein wie diese abonnieren:Wie setze ich den Kontext auf die Rxjs-Rückruffunktion?

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

Wenn ich eine Callback-Funktion anstelle von Pfeil Funktion übergeben, fehlt der Kontext.

Ich möchte den Kontext an die Subskriptionsfunktion binden, aber das sehe ich nie. ist es möglich, ohne so etwas wie

that = this

+0

Was meinen Sie mit "Kontext"? Meinst du Variablen im Bereich um 'subscribe'? Oder ist es ein Angular-spezifischer Begriff? – Ptival

+0

Mittlere Variablen im Bereich. –

Antwort

2

ich eine Antwort versuchen, machen zu tun, aber ich bin immer noch nicht ganz sicher, was Sie meinen.

Wenn Sie schreiben:

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

Aber wenn Sie schreiben:

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

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

Und das ist, wie es sein sollte. Wenn Sie möchten, dass f Variablen anzeigt, die nicht im Deklarationsbereich enthalten sind, müssen Sie sie als Argumente angeben und sie entsprechend übergeben. Zum Beispiel:

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

Ist Ihre Frage beantworten:

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

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

Oder wenn Sie den Rückruf im Zusammenhang mit den Variablen, die Sie aufnehmen möchten, können definieren? Es hat jedoch nichts mit RxJS zu tun, das sind reine JavaScript (und Programmiersprachen) Konzepte.

+1

Danke dir! Es ist klar für mich. –

Verwandte Themen