使用setTimeout调用的函数仍会立即运行

时间:2017-10-05 21:58:34

标签: javascript html5

我需要从我的HTML中调用两次Javascript函数,但我需要在两者之间有一个延迟。当我运行下面的代码时,它几乎立即上传两个文件,即使应该有一个完整的分钟延迟。知道我在这里缺少什么吗?

      sendFileToDrive(allFiles1[0]);
      setTimeout(sendFileToDrive(allFiles2[0]),60000);

1 个答案:

答案 0 :(得分:1)

你需要传递一个函数,而不是执行一个函数。

 setTimeout(() => sendFileToDrive(allFiles2[0]), 60000);

现在,传递给setTimeout的函数将在一分钟后执行,并将执行对setFileToDrive的调用。

以上使用箭头功能。这是传统语法的一种。

 setTimeout(function () { sendFileToDrive(allFiles2[0]) }, 60000);

您也可以使用.bind()

setTimeout(sendFileToDrive.bind(this, allFiles2[0]), 60000);

这假设0的{​​{1}}索引已包含您需要传递的数据。