Я объясню свою ситуацию.
У меня есть внешний файл javascript, который имеет такую функцию:
searchForSomething(id, callbackFunction);
Этот метод 'searchForSomething' является асинхронным, а возвращаемым является вызовcallbackFunction.В моем component.ts у меня есть:
declare function searchForSomething(id, callbackFunction): any;
...
message: string;
id: number;
...
next(){
searchForSomething(this.id, this.print);
}
print(result: string) {
this.message = result;
console.log(result);
}
...
ОШИБКА: Uncaught ReferenceError: «сообщение» не определено
Но ни «это» не определено.Мой код работает с использованием этого теста:
next(){
//searchForSomething(this.id, this.print);
this.print('result as a mock.');
}
Я предполагаю, что у меня здесь проблема контекста или области видимости.Я понял, что когда мой метод ts вызывается внешним javascript, я теряю угловые ссылки.
Какой самый точный способ использовать функцию обратного вызова в ts?Или мне нужно пересмотреть мой метод JavaScript, чтобы удалить параметр 'функция'?Но это асинхронно, поэтому я не могу просто удалить callbackFunction, поставить return и ждать результата.