Я использую этот модуль в программе реагирования, когда компонент импортирует этот модуль.Мне нужен токен доступа после получения для сохранения в глобальной переменной, но по какой-то причине я не могу понять, что глобальные переменные меняются не так, как хотелось бы
let usersAccessToken = '';
const clientId = 'ca47d370807d46718c513653fb3d2e';
const UriRedirect = 'http://localhost:3000/';
let flag = false;
console.log(flag);
console.log(usersAccessToken);
const Spotify = {
getAccessToken: function () {
//
if (usersAccessToken.length>0) {
console.log('step 1');
flag = true;
return usersAccessToken;
} else if (window.location.href.match(/access_token=([^&]*)/) !== null && window.location.href.match(/expires_in=([^&]*)/) !== null) {
** При этомточка в коде Мне интересно, почему userAccessToken не хранится в глобальной переменной над модулем?Я знаю, что значение хранится локально, но мне нужно, чтобы это значение было изменено глобально.когда я console.log это всегда остается пустой строкой и мои логические флаги не меняются?
console.log('step 2');
usersAccessToken = window.location.href.match(/access_token=([^&]*)/)[1];
let expirationTime = window.location.href.match(/expires_in=([^&]*)/)[1];
window.setTimeout(() => usersAccessToken = '', expirationTime );
window.history.pushState('Access Token', null, '/');
flag = true;
return usersAccessToken;
} else {
console.log('step 3');
flag = true;
window.location = `https://accounts.spotify.com/authorize?client_id=${clientId}&response_type=token&scope=playlist-modify-public&redirect_uri=${UriRedirect}`;
}
},