В моем сценарии есть функция, которая регистрирует пользователя следующим образом:
class myClient {
SignIn() {
this._userManager.signinRedirect();
this._userManager.processSigninResponse().then(function (response) {
manager._userManager.getUser().then(function (user) {
manager._loggedUser = user;
});
})
}
}
Как видите, есть два вложенных промиса. Пользователь входит в систему только после разрешения самого внутреннего промиса (т.е.: manager._loggedUser = user
)
Теперь я хотел бы, чтобы мой класс предоставлял только два метода: SignIn() [как описано выше] и GetUserInfo():
GetUserInfo() {
// ...
return this._loggedUser;
};
Так что любой, кто использует мой класс, просто должен выполнить следующие шаги, чтобы получить профиль пользователя, вошедшего в систему:
- создать объект
- вызвать метод входа
- получить информацию о пользователе
Как я могу «синхронизировать» 2-й и 3-й шаги, чтобы гарантировать, что _loggedUser не является нулевым после первого вызова метода signin() и GetUserInfo() после?