Я вызываю функцию javascript в компоненте angular. Я включил файл JS в "angular. json", и он отлично работает. Функция JS выполняет запрос HTTP GET и возвращает данные. Проблема в том, что я не могу сказать Angular дождаться ответа JS, чтобы затем извлечь данные.
Это моя JS функция:
function getDataJsFunct(id) {
var params = {id:id}
apiClient.getById(params) { console.log('data from JS', result);
return result;
}
}
И это мои TS файлы: в api-services.ts
declare var getDataJsFunct: any;
export class ApiServices {
.
.
public getAction(id) {
return new Promise ( resolve => {
const data = getDataJsFunct(id);
if (data) {
console.log('result', data);
return resolve();
}
});
}
}
в component.service.ts
@Injectable()
export class ComponentService {
constructor(private serviceProvider: ApiServices) {}
getDataFromProvider(id) {
return this.serviceProvider.getAction(id);
}
}
в component.ts
ngOnInit() {
let id = '123456';
this.componentService.getDataFromProvider(id).then((data: any) => {
this.dataFromBd = data.Items[0];
},
error => {
console.log('Error in getting Data', error);
});
}
Программа сбой в "getDataFromProvider (id). ***then***
((data", потому что getDataFromProvided (id) не определен. Я предполагаю, что мне нужно обещание сказать Angular, что нужно дождаться ответа JS, затем продолжить выполнение. Как и где следует Я делаю это, пожалуйста?