Вы не создаете экземпляр пользователя.
Вот пример того, как это может быть реализовано:
export class User {
id?: number;
userName?: string;
knownAs?: string;
age?: number;
gender?: string;
created?: Date;
lastActive?: Date;
photoUrl?: string;
city?: string;
country?: string;
surname?: string;
givenname?: string;
constructor(args: User = {}) {
this.id = args.id;
this.userName = args.userName;
this.knownAs = args.knownAs;
this.age = args.age;
this.gender = args.gender;
this.created = args.created;
this.lastActive = args.lastActive;
this.photoUrl = args.photoUrl;
this.city = args.city;
this.country = args.country;
this.surname = args.surname;
this.givenname = args.givenname;
}
get fullName(): string {
return `${this.givenname} ${this.surname}`;
}
sayHello() {
console.log(`Hello, my name is ${this.surname} ${this.givenname}!`);
}
}
Используйте map для создания своего пользовательского экземпляра:
user: User;
this.userService.getUser(this.loggedUser.nameid)
.pipe(map((user: User) => new User(user)))
.subscribe((user: User) => {
this.user = user;
this.user.givenname = this.loggedUser.given_name;
this.user.surname = this.loggedUser.family_name;
console.log(this.user.fullName);
this.user.sayHello();
});
Когда вещи являются таинственными...., профилировщики являются Вашим другом!
профилировщик составит статистику, которой методы называют больше всего и сколько времени тратится в каждом вызове метода.
рубиновый профессор добивается цели для меня, когда я буду в RubyLand, и он произведет хороший граф вызовов (в формате HTML, если Вы захотите), который делает его хорошим и легким видеть, какие методы замедляют Ваш запрос.
Я рекомендую использовать сервис об/мин Нового Пережитка. Это имеет бесплатную версию, но Бронзовый сервис (40$ в месяц) замечателен, и дальнейший помогает разыскать эти проблемы.
Я как раз собирался пересмотреть этот вопрос с тем же ответом, таким образом, я просто осуществлю контрейлерные перевозки. Вот очень маленький отрывок рубинового профессора от одного рендеринга представления. Удивительно, сколько материала продолжается под капотом.
Помимо рендеринга и время базы данных, некоторое время проведено в Вашем коде контроллера и Инфраструктуре Rails. Это может быть действительно медленно, если слишком мало ресурсов присвоено Вашему серверу подготовки. Вы не должны однако, что продолжительности в журнале не всегда прекрасны, особенно продолжительность базы данных.
Что говорит Ваш апачский журнал? Это будет определенно иметь различные числа для показа времени, требуемого служить запросу.
Apache отправляет запросы к направляющим и работам направляющих над ним и именно это Вы видите в своих производственных журналах.
Весь HTML все еще должен быть представлен на Вашем браузере (тяжелый CSS, изображения, js и т.д.). Попытайтесь использовать расширение Firefox httpwatch для знания времени рендеринга элементов UI, и оно должно сложить.
Как предложено ранее, NewRelic должен дать Вам достойный разрыв времени, проведенного в различных операциях (M V C)