Я думаю, ты немного растерялся.
Я воспользовался свободой, чтобы очистить ваш стек от неиспользуемого кода и показать вам, как использовать обратные вызовы: вы можете проверить его там .
Начнем с компонента:
constructor(
private service: AppService
) {
this.processSomething(true);
this.processSomething(false);
}
private processSomething(isZoom: boolean = false) {
this.service.handleAsyncResponses(isZoom, this.processDataReceived);
}
private processDataReceived(isZoom: boolean) {
console.log("isZoom:", isZoom);
}
Вам не нужно определять свои параметры как необязательные, поскольку вы присваиваете своему isZoom
значению значение по умолчанию, что делает его всегда определенным.
Как видите, вам не нужно передавать ваш полный объект в качестве аргумента: функция может быть вызвана без него.
К вашим услугам, все, что вам осталось, это
public handleAsyncResponses(zoom: boolean, callback: Function) {
callback(zoom);
}
Просто вызовите функцию, как в любом другом контексте. просто переименуйте this.processDataReceived(zoom)
с именем параметра (здесь это callback
).
Вот как обрабатываются обратные вызовы.