延迟Javascript函数,直到加载数据

时间:2019-07-25 06:54:54

标签: javascript html

我有一些数据作为整数被实时更新到Google表格中,然后将其插入页面的HTML中,然后使用Javascript来对数字进行动画处理,直到存储的数字为止。

不幸的是,在激活计数器功能之前未收到来自Google工作表的数据,因此在页面加载时我的计数器显示为0,但是刷新页面时,所有内容都可以计算到工作表中存储的数量。

如果计数器功能可以延迟到接收到图纸数据之前,我相信这可以按预期运行。

我是html和Javascript的业余爱好者,因此可能没有正确实现这些功能,但我已经尝试过:

在<脚本>

中放置

延迟

-插入setTimeout(setTimeout似乎最有可能实现我需要的功能,但我无法正确延迟计数器)

-我的html中的计数器脚本-

select-word-style bash

我希望页面加载,并且数字最多可以存储到我在Google表格文件夹中存储的数字。当前,它在页面加载时显示为0,并且仅在刷新页面后才能正常工作。

谢谢。

1 个答案:

答案 0 :(得分:0)

浏览器中当前生成的Javascript没有允许其他内容运行的wait()或sleep()。因此,您根本无法满足您的要求。相反,它具有异步操作,可以执行其操作,然后在操作完成时调用您(就像您一直在使用promise一样)。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

function waitForDataLoad() {
  return new Promise(function(resolve, reject) {
      // process your data load or any processs
      setTimeout(function(){
       resolve();
      },3000)

    
  })
}

waitForDataLoad().then(function(result) {
    // use the result here
    // Further process here
    // this script will be only loaded when above function return resolve();
    console.log("data is loaded compeletly")
});