auth0.js
имеет функцию, которая используется для анализа фрагмента хэша URL и извлечения из него результата аутентификации. Я оборачиваю эту функцию в одну с именем loadSession
следующим образом:
public loadSession(): void {
this.auth0.parseHash((err, authResult) => {
if (authResult) {
window.location.hash = '';
localStorage.setItem('token', authResult.accessToken);
// TODO (1)
} else if (err) {
// TODO (2)
}
});
}
Как видно выше, parseHash
принимает функцию обратного вызова в качестве аргумента, и я не могу это контролировать. Я хотел бы, чтобы loadSession
возвращал Promise
, который был бы разрешен в // TODO (1)
и отклонен в // TODO (2)
выше. Таким образом, я могу сделать obj.loadSession().then(() => { // do something if successful }).catch((err) => { // raise error if not })