Я попытаюсь ответить, но я все еще не совсем уверен, что вы имеете в виду.
Когда вы пишете:
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 (и языков программирования).
person
Ptival
schedule
10.08.2016
context
? Вы имеете в виду переменные в области вокругsubscribe
? Или это специфичное для Angular понятие? - person Ptival   schedule 10.08.2016