我有一个反应班。
componentDidMount() {
let refresh_token = localStorage.getItem('refresh_token');
let isTokenActive = this.checkIfRefreshTokenWorking(refresh_token);
}
checkIfRefreshTokenWorking = (refresh_token) => {
let trueOrFalse = false;
fetch('http://localhost:8888/refresh_token?refresh_token='+refresh_token)
.then(response => {
response.json()
trueOrFalse = true;
})
.catch(err => {
trueOrFalse = false;
})
.finally(() => {
return trueOrFalse;
})
}
isTokenActive
未定义。我要等到checkIfRefreshTokenWorking
返回一个值。我需要为此做出承诺吗?
答案 0 :(得分:1)
传递给新Promise的函数称为执行程序。创建新的Promise后,执行程序将自动运行。它包含产生代码,最终应产生结果。按照上面的类比:执行者是“歌手”。
其参数resolve和reject是JavaScript本身提供的回调。我们的代码仅在执行程序内部。
这不是经过测试的代码
componentDidMount() {
let refresh_token = localStorage.getItem('access_token');
this.checkIfRefreshTokenWorking(refresh_token)
.then((data) => console.log(data))
.catch(error => console.log(error));
}
checkIfRefreshTokenWorking = (refresh_token) => new Promise((resolve, reject) => {
let trueOrFalse = false;
fetch('http://localhost:8888/refresh_token?refresh_token='+refresh_token)
.then(response => {
response.json()
trueOrFalse = true;
resolve(response.json());
})
.catch(err => {
trueOrFalse = false;
reject(err);
})
.finally(() => {
return trueOrFalse;
resolve();
})
})
答案 1 :(得分:0)
您在这里有两个选择
e7.selection_get()
和刷新令牌调用async/await
方式conditional rendering
参考: