У меня проблема с использованием асинхронной функции в привязке данных Angular 6:
<span *ngIf="application.status == 'in-progress'; else new">
{{getAssignedUser(application.user_id)}}
</span>
getAssignedUser()
- это асинхронная функция, которая извлекает документ из Firestore, и я хочу отобразить имя назначенного пользователя, которое я получил из Firestore. Единственная проблема здесь в том, что я не могу отобразить значение имени OnInit Если я вставлю кнопку и добавлю событие щелчка, отобразится имя.
Компонент:
async getAssignedUser(id): Promise<string> {
if (id != null) {
return this._usersService
.getUserById(id)
.then(data => {
this.assignedUser = data.user_fname;
return this.assignedUser;
})
} else {
return null;
}
}
Услуги:
getUserById(id): any {
let user: any;
user = this.afs.collection('agents').doc(id).ref.get().then(function (doc) {
if (doc.exists) {
user = doc.data();
console.log(user);
return user;
}
else {
console.log('No such document');
}
}).catch(function (error) {
console.log('Error getting document: ', error);
})
return user;
}
Любая помощь, пожалуйста?