Если я проверю метод подписки Rx JS, я вижу, что:
subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
поэтому я пишу пример функции инициализации следующим образом:
private init(): void{
this.dataBaseService.fetchPersons().subscribe(
(persons: Person[]) => {
this.behaviorSubject.next(persons);
this.subject.next(persons);
},
error => console.error(error),
() => console.log('Complete!')
);
}
требуется ли в Typescript предоставлять лямбда-функцию для аргумента? Могу ли я создать функцию в другом месте и предоставить ее в качестве аргумента?
например, эту функцию:
(persons: Person[]) => {
this.behaviorSubject.next(persons);
this.subject.next(persons);
}
создать в верхнем классе, а затем предоставить ее в качестве аргумента.
Хорошо поэтому я попытался создать метод внутри класса:
someFunction( persons: Person[] ){
this.behaviorSubject.next(persons);
this.subject.next(persons);
}
и попытался передать его функции инициализации
private init2(): void {
this.dataBaseService.fetchPersons().subscribe(
this.someFunction(),
error => void,
() => console.log('Complete!');
)
}
И я получаю сообщение об ошибке:
An argument for 'persons' was not provided.
Какой аргумент я должен предоставить, если его инициализация этого верхнего метода?