标签: settimeout

如何将参数传递给setTimeout()回调?

我有一些JavaScript代码,如下所示:

function statechangedPostQuestion()
{
  //alert("statechangedPostQuestion");
  if (xmlhttp.readyState==4)
  {
    var topicId = xmlhttp.responseText;
    setTimeout("postinsql(topicId)",4000);
  }
}

function postinsql(topicId)
{
  //alert(topicId);
}
Run Code Online (Sandbox Code Playgroud)

我得到一个topicId未定义的错误在使用该setTimeout()函数之前,一切正常.

我希望postinsql(topicId)在一段时间后调用我的函数.我该怎么办?

javascript parameters callback settimeout

796
推荐指数
12
解决办法
54万
查看次数

带有和不带引号和括号的setTimeout之间的区别

我正在学习JavaScript,最近我学到了关于JavaScript计时事件的知识.当我setTimeoutW3Schools学习时,我注意到一个奇怪的人物,我之前没有遇到过.他们使用双引号然后调用该函数.

例:

setTimeout("alertMsg()", 3000);
Run Code Online (Sandbox Code Playgroud)

我知道JavaScript中的双引号和单引号表示字符串.

我也看到我可以这样做:

setTimeout(alertMsg, 3000);
Run Code Online (Sandbox Code Playgroud)

用括号表示,没有括号,它被复制.当我使用引号和括号时,它变得疯狂.

如果有人能向我解释这三种使用方式之间的区别,我将很高兴setTimeout:

括号:

setTimeout("alertMsg()", 3000);
Run Code Online (Sandbox Code Playgroud)

没有引号和括号:

setTimeout(alertMsg, 3000);
Run Code Online (Sandbox Code Playgroud)

第三个是仅使用引号:

setTimeout("alertMsg", 3000);
Run Code Online (Sandbox Code Playgroud)

注意:更好的setTimeout参考来源是MDN.

javascript settimeout

235
推荐指数
1
解决办法
42万
查看次数

将正确的"this"上下文传递给setTimeout回调?

如何将上下文传递给setTimeout?我想打电话this.tip.destroy(),如果this.options.destroyOnHide在1000毫秒.我怎样才能做到这一点?

if (this.options.destroyOnHide) {
     setTimeout(function() { this.tip.destroy() }, 1000);
} 
Run Code Online (Sandbox Code Playgroud)

当我尝试以上时,this指的是窗口.

javascript callback this settimeout

226
推荐指数
4
解决办法
17万
查看次数

async函数+ await + setTimeout的组合

我正在尝试使用新的异步功能,我希望解决我的问题将来会帮助其他人.这是我正在运行的代码:

  async function asyncGenerator() {
    // other code
    while (goOn) {
      // other code
      var fileList = await listFiles(nextPageToken);
      var parents = await requestParents(fileList);
      // other code
    }
    // other code
  }

  function listFiles(token) {
    return gapi.client.drive.files.list({
      'maxResults': sizeResults,
      'pageToken': token,
      'q': query
    });
  }
Run Code Online (Sandbox Code Playgroud)

问题是,我的while循环运行得太快,并且脚本每秒向google API发送太多请求.因此,我想建立一个延迟请求的睡眠功能.因此我也可以使用此函数来延迟其他请求.如果有其他方式延迟请求,请告诉我.

无论如何,这是我的新代码不起作用.请求的响应返回到setTimeout中的匿名异步函数,但我只是不知道如何将响应返回给sleep函数resp.到最初的asyncGenerator函数.

  async function asyncGenerator() {
    // other code
    while (goOn) {
      // other code
      var fileList = await sleep(listFiles, nextPageToken);
      var parents = await requestParents(fileList);
      // other code
    }
    // other code
  } …
Run Code Online (Sandbox Code Playgroud)

javascript settimeout async-await ecmascript-2017

219
推荐指数
10
解决办法
17万
查看次数

如何使用Coffeescript的params编写setTimeout

请告诉我如何在coffeescript中写下面的javascript.

setTimeout(function(){
    something(param);
}, 1000);
Run Code Online (Sandbox Code Playgroud)

javascript settimeout coffeescript

206
推荐指数
5
解决办法
7万
查看次数

使用JavaScript在特定延迟后执行脚本

有没有类似于jQuery的JavaScript方法delay()wait()(在特定时间内延迟执行脚本)?

javascript settimeout

185
推荐指数
10
解决办法
44万
查看次数

如何清除函数内的setInterval?

通常,我将间隔设置为变量然后清除它,var the_int = setInterval(); clearInterval(the_int);但为了我的代码工作我把它放在一个匿名函数:

function intervalTrigger() {
  setInterval(function() {
    if (timedCount >= markers.length) {
      timedCount = 0;
    }

    google.maps.event.trigger(markers[timedCount], "click");
    timedCount++;
  }, 5000);
};

intervalTrigger();
Run Code Online (Sandbox Code Playgroud)

我该如何清除这个?我试了一下并试图var test = intervalTrigger(); clearInterval(test);确定,但那没用.

基本上,我需要这个来点击我的谷歌地图后停止触发,例如

google.maps.event.addListener(map, "click", function() {
  //stop timer
});
Run Code Online (Sandbox Code Playgroud)

javascript settimeout dom-events

162
推荐指数
2
解决办法
17万
查看次数

Chrome:在后台标签中暂停超时/间隔?

我正在测试setTimeout使用测试的准确性.现在我注意到(正如预期的那样)setTimeout并不是非常准确,但对于大多数设备并不是非常不准确.现在,如果我在Chrome中运行测试并让它在后台标签中运行(那么,切换到另一个标签并在那里浏览),返回测试并检查结果(如果测试完成),它们会发生显着变化.看起来超时运行速度慢得多.在FF4或IE9中测试没有发生这种情况.

因此,看起来Chrome暂停或至少减慢了无法关注的标签中的javascript执行速度.关于这个问题在网上找不到多少.这意味着我们无法运行后台任务,例如使用XHR调用定期检查服务器,并且setInterval(我怀疑看到相同的行为setInterval,如果有时间,我会编写测试).

有没有遇到过这个?这种暂停/减速会有解决方法吗?你会把它称为一个错误,我应该这样提交吗?

javascript tabs google-chrome settimeout

117
推荐指数
4
解决办法
8万
查看次数

什么是Android/Java中的JavaScript setInterval/setTimeout?

任何人都能告诉我是否存在Android的setInterval/setTimeout的等价物?有人有任何关于如何做的例子吗?

javascript java android settimeout

113
推荐指数
8
解决办法
8万
查看次数

为什么setTimeout()"中断"大毫秒延迟值?

当传递一个大的毫秒值时,我遇到了一些意想不到的行为setTimeout().例如,

setTimeout(some_callback, Number.MAX_VALUE);
Run Code Online (Sandbox Code Playgroud)

setTimeout(some_callback, Infinity);
Run Code Online (Sandbox Code Playgroud)

两者都导致some_callback几乎立即运行,好像我已经通过0而不是大量的延迟.

为什么会这样?

javascript settimeout

95
推荐指数
4
解决办法
3万
查看次数