Javascript 如何在JS中调用async Wait,以便在一定时间后再次获取?

Javascript 如何在JS中调用async Wait,以便在一定时间后再次获取?,javascript,json,performance,asynchronous,async-await,Javascript,Json,Performance,Asynchronous,Async Await,我有一个async await,如下所示,我只是获取一些JSON数据。很好。但是,如果您查看控制台,您会注意到在JSON数据中,有一个值finish,它基本上是一个Unix时间戳 当用户的当前时间戳大于该Unix时间戳时,我需要再次获取JSON数据。然后,我需要再次检查时间戳,并无限期地继续检查。只要当前时间超过完成时间戳,json数据就会更改 我该怎么做 这是一个关于这个的示例代码笔 这段代码就是你要求的,我留下了/*把你的DOM更新代码放在这里*/你可以把你的DOM操作代码放在这里 功能睡

我有一个async await,如下所示,我只是获取一些JSON数据。很好。但是,如果您查看控制台,您会注意到在JSON数据中,有一个值finish,它基本上是一个Unix时间戳

当用户的当前时间戳大于该Unix时间戳时,我需要再次获取JSON数据。然后,我需要再次检查时间戳,并无限期地继续检查。只要当前时间超过完成时间戳,json数据就会更改

我该怎么做

这是一个关于这个的示例代码笔


这段代码就是你要求的,我留下了
/*把你的DOM更新代码放在这里*/
你可以把你的DOM操作代码放在这里

功能睡眠(毫秒){
返回新承诺(resolve=>setTimeout(resolve,ms));
}
//这看起来很奇怪,因为jQuery不喜欢文档就绪中的异步代码。
$(()=>{(异步()=>{
让getData=async()=>{
log('getData');
let response=等待获取(
"https://d2nzqyyfd6k6c7.cloudfront.net/nova-player-history/nova969-current.json"
)
让json=wait response.json()
让tDiff=json.finish-Math.round((new Date()).getTime()/1000);
console.log(json)
log(`Refresh in${tDiff}s`)
/*将DOM更新代码放在这里*/
等待睡眠(tDiff*1000)
}
//永远运行它
对于(;;)等待getData()
})()});

从json响应中获取时间戳(如果需要,将其转换为数字),执行
设置超时(this.getData,timestamp-new Date().getTime())
以在时间戳过去后安排另一次提取?Google
设置超时
class aClass {
 async getData() {
    try {
        let response = await fetch(
            "https://d2nzqyyfd6k6c7.cloudfront.net/nova-player-history/nova969-current.json"
        );
        let json = await response.json();
        return json;
    } catch (e) {
        console.log("Error!", e);
    }
 }
}

$(document).ready(function() {
    const myClass = new aClass();
      var promise = myClass.getData()
            .then(function(data){
                console.log(data);
            });   
});