【发布时间】:2021-02-01 23:29:48
【问题描述】:
我目前在函数“refreshToken()”中有一个刷新令牌 api 调用,它没有显示在下面的代码中,但可以根据需要添加。在根组件的 componentDidMount 函数中,我调用 refreshToken() 的目的是每 60 分钟执行一次。不确定是否在此实例中使用 setInterval 或 setTimeout,因为我还将令牌存储在 localStorage 中。我还在使用 Spotify API 和他们的 OAuth,它们向我传递了刷新和访问令牌。我也意识到我需要本地存储中的令牌到期时间,因此计时器不会在页面重新加载时重置,那么我应该如何处理呢?以下是我目前拥有的代码。
App.js(根组件)
componentDidMount(){
var now = new Date();
var delay = 60 * 60 * 1000; // 1 hour in msec
var start = delay - (now.getMinutes() * 60 + now.getSeconds()) * 1000 + now.getMilliseconds();
setTimeout(function() {
setTimeout(refreshToken(), delay);
}, start);
if (window.localStorage.getItem('spotifyAccessToken')){
this.getSpotifyData();
}
}
【问题讨论】:
标签: javascript reactjs settimeout setinterval