Questions tagged «settimeout»

setTimeout是全局JavaScript方法,用于在给定延迟后执行特定功能或一段代码。

28
如何将参数传递给setTimeout()回调?
我有一些如下的JavaScript代码: function statechangedPostQuestion() { //alert("statechangedPostQuestion"); if (xmlhttp.readyState==4) { var topicId = xmlhttp.responseText; setTimeout("postinsql(topicId)",4000); } } function postinsql(topicId) { //alert(topicId); } 我收到topicId未定义的错误,在使用该setTimeout()功能之前,一切都在工作。 我希望postinsql(topicId)一段时间后调用我的函数。我该怎么办?

10
异步功能+等待+ 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 }); } 问题是我的while循环运行得太快,脚本每秒向Google API发送太多请求。因此,我想构建一个睡眠函数以延迟请求。因此,我也可以使用此功能来延迟其他请求。如果还有其他方法可以延迟请求,请告诉我。 无论如何,这是我的新代码不起作用。请求的响应在setTimeout中返回给匿名异步函数,但是我只是不知道如何将响应返回给睡眠函数resp。到初始asyncGenerator函数。 async function …


6
包含和不包含引号和括号的setTimeout之间的区别
我正在学习JavaScript,最近又了解了JavaScript计时事件。当我setTimeout在W3Schools学习时,我注意到一个我从未遇到过的奇怪人物。他们使用双引号,然后调用该函数。 例: setTimeout("alertMsg()", 3000); 我知道JavaScript中的双引号和单引号表示字符串。 我也看到我可以做这样的事情: setTimeout(alertMsg, 3000); 有括号的是指,没有括号的是复制的。当我使用引号和括号时,它变得很疯狂。 如果有人可以向我解释这三种使用方式之间的区别,我将感到非常高兴setTimeout: 加上括号: setTimeout("alertMsg()", 3000); 没有引号和括号: setTimeout(alertMsg, 3000); 第三只使用引号: setTimeout("alertMsg", 3000); 注意:MDNsetTimeout是更好的参考来源。



4
如何清除函数内部的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(); 我该如何清除?我试了一下,然后尝试var test = intervalTrigger(); clearInterval(test);确定一下,但这没用。 基本上,我需要在单击Google地图后停止触发,例如 google.maps.event.addListener(map, "click", function() { //stop timer });

6
Chrome:超时/间隔暂停在背景标签中?
我正在测试setTimeout使用此测试的准确性。现在,我注意到(如预期的那样)setTimeout不是很准确,但是对于大多数设备而言,并不是十分不准确。现在,如果我在Chrome中运行测试并让其在后台标签中运行(因此,切换到另一个标签并在该标签上浏览),返回测试并检查结果(如果测试完成),它们将发生很大的变化。超时似乎一直慢很多。在FF4或IE9中进行了测试,但这没有发生。 因此,Chrome似乎在没有焦点的标签中暂停或至少减慢了javascript的执行速度。在网上找不到太多关于该主题的信息。这将意味着我们无法运行后台任务,例如,使用XHR调用定期检查服务器上的setInterval(setInterval如果时间不多,我怀疑会看到的相同行为会编写测试)。 有人遇到过这个吗?暂停/放慢速度会有解决方法吗?您将其称为错误,还是应该这样提交?


6
TypeScript-使用正确版本的setTimeout(节点与窗口)
我正在努力升级一些旧的TypeScript代码以使用最新的编译器版本,并且在调用时遇到了麻烦setTimeout。该代码希望调用浏览器的setTimeout函数,该函数返回一个数字: setTimeout(handler: (...args: any[]) => void, timeout: number): number; 但是,编译器将其解析为节点实现,它将返回NodeJS.Timer: setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer; 该代码未在节点中运行,但是节点类型作为对其他内容(不知道是什么)的依赖而被引入。 如何指示编译器选择所需的版本setTimeout? 这是有问题的代码: let n: number; n = setTimeout(function () { /* snip */ }, 500); 这会产生编译器错误: TS2322:不能将“计时器”类型分配给“数字”类型。


7
setTimeout / clearTimeout问题
我尝试使页面转到例如eg之后的首页。10秒钟不活动(用户未单击任何位置)。我使用jQuery进行其余操作,但测试功能中的set / clear是纯javascript。 令我沮丧的是,我最终得到了类似该功能的东西,希望我可以在该页面上进行任何单击。计时器可以正常启动,但单击后不会重置。如果在前10秒内调用该函数5次,则将出现5条警报...无clearTimeout ... function endAndStartTimer() { window.clearTimeout(timer); var timer; //var millisecBeforeRedirect = 10000; timer = window.setTimeout(function(){alert('Hello!');},10000); } 有人得到一些可以解决问题的代码行吗?-在任何点击停止时,重置并启动计时器。-当计时器命中时 10sec做点什么。

6
React应用中的setInterval
我在React还是很新,但是我一直在慢慢地学习,遇到了一些我坚持的事情。 我正在尝试在React中构建一个“计时器”组件,说实话,我不知道我是否做得正确(或有效)。在下面的代码中,我将状态设置为返回对象,{ currentCount: 10 }并且一直在与componentDidMount,玩弄componentWillUnmount,render并且我只能使状态从10倒数到9。 分两部分的问题:我怎么了?而且,有没有一种更有效的方式来使用setTimeout(而不是使用componentDidMount&componentWillUnmount)? 先感谢您。 import React from 'react'; var Clock = React.createClass({ getInitialState: function() { return { currentCount: 10 }; }, componentDidMount: function() { this.countdown = setInterval(this.timer, 1000); }, componentWillUnmount: function() { clearInterval(this.countdown); }, timer: function() { this.setState({ currentCount: 10 }); }, render: function() { var displayCount …

6
延迟jQuery悬停事件?
我想延迟jquery中的悬停事件。当用户将鼠标悬停在链接或标签上时,我正在从文件中读取内容。如果用户只是在屏幕上移动鼠标,我不希望立即发生此事件。有没有办法延迟事件触发? 谢谢。 示例代码: $(function() { $('#container a').hover(function() { $('<div id="fileinfo" />').load('ReadTextFileX.aspx', {filename:'file.txt'}, function() { $(this).appendTo('#info'); } ); }, function() { $('#info').remove(); } }); }); 更新: (1/14/09) 添加HoverIntent插件后,上面的代码更改为以下代码以实现它。实施非常简单。 $(function() { hiConfig = { sensitivity: 3, // number = sensitivity threshold (must be 1 or higher) interval: 200, // number = milliseconds …

2
如何通过setTimeout做出承诺
这不是现实问题,我只是想了解如何创建承诺。 我需要了解如何对不返回任何内容的函数(例如setTimeout)作出承诺。 假设我有: function async(callback){ setTimeout(function(){ callback(); }, 5000); } async(function(){ console.log('async called back'); }); 如何创建async可以在setTimeout准备就绪后返回的承诺callback()? 我以为包装会带我到某处: function setTimeoutReturnPromise(){ function promise(){} promise.prototype.then = function() { console.log('timed out'); }; setTimeout(function(){ return ??? },2000); return promise; } 但是我不能不考虑这个。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.