gpt4 book ai didi

javascript - 全局变量未按方法预期的方式更改

转载 作者:行者123 更新时间:2023-11-30 06:22:20 25 4
gpt4 key购买 nike

我在组件导入此模块的 react 程序中使用此模块。我需要将收到的访问 token 存储在全局变量中,但出于某种原因,我无法弄清楚全局变量似乎没有按预期更改

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 时,它始终是一个空字符串,而且我的 bool 标志也没有改变?

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}`;

}
},

最佳答案

下面这段代码工作正常,你可以看看下面这对我有用的代码。

测试于... https://repl.it/repls/PitifulEarlyMapping

let usersAccessToken = '';
let flag = false;
console.log(flag);
console.log('token',usersAccessToken);
getAccessToken();

function getAccessToken() {
if (usersAccessToken.length>0) {
console.log('step 1');
flag = true;
return usersAccessToken;
} else if (flag== false) {
console.log('step 2');
usersAccessToken = 'tokebjzgdhjasgfj';
return usersAccessToken;
} else {
console.log('step 3');
flag = true;
return usersAccessToken;
}
}

关于javascript - 全局变量未按方法预期的方式更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52436146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com