javascript - 如何设置两个js函数之间的延迟?

标签 javascript jquery delay

我有以下js代码:

clientData.reloadTable( "CreateCSV", "/create/file" );
$("#downloadFrame").attr("src","/download/download");

在上面的代码中。第一条语句是在磁盘上创建一个 csv 文件。第二条语句正在下载它(由于使用 AJAX 请求时出错,因此使用 iframe 下载文件)。它正在下载文件,但包含以前的内容。这意味着它会在完成更新该文件之前提示我下载文件。

如何强制我的第二个nd语句在第一个语句完成其工作之前不执行?

谢谢

最佳答案

在 Javascript 中执行此类操作的最佳方法是使用回调函数。

是否可以更改 reloadTable 函数,以便 >

var callback = function () { $("#downloadFrame").attr("src", "/download/download") }

clientData.reloadTable("CreateCSV", "create/file", callback);

然后在 reloadTable 函数中,一切完成后调用回调函数。

这就是 Javascript 的真正魅力。

<小时/>

否则,如果您知道 reloadTable 需要多长时间,也可以使用 setTimeout()。

例如如果需要1秒。要完成,您可以>

clientData.reloadTable( "CreateCSV", "create/file" );
var func = function () { $("#downloadFrame").attr("src","/download/download");}
setTimeout(func, 1000);

关于javascript - 如何设置两个js函数之间的延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5787207/

相关文章:

javascript - 谷歌地图标记上的慢循环

javascript - 使用 jquery 检测移动到另一个 html 元素上的 html 元素

javascript - 允许 angularjs 中的字母数字指令使用破折号

javascript - 在 qooxdoo 应用程序中使用 Promise

javascript - 如何创建 JavaScript 延迟函数

javascript - knockout 如何更改绑定(bind)到元素的模型

php - Laravel 5.5 发送数据查看而不重新加载页面

javascript - 将 jQuery $(this) 转换为原始元素

java - jquery .fadeIn .delay .fadeOut - 不淡出

c# - PreRequestFilters 之前的 ServiceStack 请求处理延迟