Я хочу вызвать асинхронную функцию readUsers () внутри конструктора или ngOnInit ().Хотя я использовал рекомендованный обходной путь отсюда, он все еще откладывается и не ожидает выполнения.
Асинхронные функции конструктора в TypeScript?
Как я могу отложить / подождать с выполнением моей функции readUsers ()?
users: any[];
ngOnInit() {
this.readUsers();
//this.readUsers(); above is called delayed so this.users below is
//undefined
console.log(this.users);
}
public readUsers = async () => {
this.users = await this.userService.getUsers()
.then(resolve=>{
console.log("within async function");
return resolve;
})
.catch(reject=>{
return [];
})
}
////////userService.getUsers() reads JSON Object from an endpoint (works!)
getUsers(): Promise<any> {
return new Promise((resolve, reject) => {
this.http
.get('https://url.com/users/')
.subscribe(users => {
if (!users) {
reject([]);
}
resolve(users);
});
});
}
Консоль.log переключается, так как нет ожидания:
undefined
в пределах асинхронной функции