У меня есть следующий класс; я сделал это как можно короче, чтобы объяснить проблему:
@Injectable()
export class TestService {
...
private testSubscription: Subscription = new Subscription;
constructor(
private store: Store<FromTest.IState>,
private otherService: otherService) {
}
public MainTestMethod() {
this.testSubscription = this.otherService.getSomethingObservable().subscribe(toBeCalledTestMethod)
}
private toBeCalledTestMethod(something: boolean) {
this.store <- undefined
}
...
}
При передаче метода для подписки поле «store» не определено. Однако, когда я изменяю метод подписки на:
this.testSubscription = this.otherService.getSomethingObservable().subscribe(x => toBeCalledTestMethod(x))
, поле "store" имеет значение (что ожидается).
Рад, что нашел способ заставить его работать, но я не Я не понимаю, почему передача метода в виде лямбды может привести к другому поведению.
Я новичок в машинописи и angular, поэтому хотел бы узнать почему.
Заранее спасибо!