这不是现实世界的问题,我只是想了解如何创建promise。我需要了解如何为不返回任何内容的函数做出promise,例如setTimeout。假设我有:functionasync(callback){setTimeout(function(){callback();},5000);}async(function(){console.log('asynccalledback');});如何创建async可以在setTimeout准备好callback()后返回的promise?我想包装它会把我带到某个地方:functionsetTimeoutReturnPromise(){function
我正在开发一个需要多个JavaScript元素相互同步的音乐程序。我一直在使用setInterval,最初效果非常好。然而,随着时间的推移,元素逐渐变得不同步,这在音乐节目中是很糟糕的。我在网上看到setTimeout更准确,你可以用某种方式让setTimeout循环。但是,我还没有找到一个通用版本来说明这是如何实现的。基本上我有这样一些功能://drumssetInterval(function{//codeforthedrumsplayinggoeshere},8000);//chordssetInterval(function{//codeforthechordsplayingg
我想知道一个JavaScriptwhile语句(在Chrome的控制台中)可以在一毫秒内递增一个变量多少次,所以我很快将这个片段直接写到控制台中:varrun=true,i=0;setTimeout(function(){run=false;},1);while(run){i++;}问题是它永远运行。为什么会发生这种情况,我该如何解决? 最佳答案 这又回到了JavaScript1的单线程特性。发生的事情几乎是这样的:您的变量已分配。您安排一个函数,设置run=false。这计划在当前功能运行(或当前处于事件状态的任何其他功能)之后运
这个问题在这里已经有了答案:Howtoaccessthecorrect`this`insideacallback(13个答案)关闭5年前。我类有这样一个函数showMessageSuccess(){varthat=this;this.messageSuccess=true;setTimeout(function(){that.messageSuccess=false;},3000);}我怎样才能重写这个,这样我就不必在“that”变量中存储对“this”的引用?如果我在setTimeout中使用“this”,则messageSuccessbool似乎不会更改/更新。
如果我有一个通过vart=setTimeout("dosomething()",5000)设置的事件超时运行,有没有办法暂停和恢复它?有没有办法获取当前超时的剩余时间?或者我必须在一个变量中,当设置超时时,存储当前时间,然后我们暂停,得到现在和那时之间的区别? 最佳答案 您可以像这样包装window.setTimeout,我认为这与您在问题中的建议类似:varTimer=function(callback,delay){vartimerId,start,remaining=delay;this.pause=function(){wi
我有以下内容:window.setTimeout(function(){window.location.href='file.php';},115000);如何通过.click函数在倒计时中途重置计数器? 最佳答案 您可以存储对该超时的引用,然后调用clearTimeout在那个引用上。//intheexampleabove,assigntheresultvartimeoutHandle=window.setTimeout(...);//inyourclickfunction,callclearTimeoutwindow.clear
这个问题说明了一切-是否有一个函数与PHP的JavaScript函数setTimeout()功能相同?我搜索了php.net,但似乎找不到任何... 最佳答案 当前脚本中的部分代码无法延迟执行。这也没有多大意义,因为PHP脚本的处理完全在服务器端进行,您只会延迟脚本的整体执行。有sleep()但这只会让进程暂停一段时间。当然,您可以使用cron作业等安排PHP脚本在特定时间运行。 关于php-是否有类似于setTimeout()(JavaScript)的函数用于PHP?,我们在Stack
如何在Vue.js方法中使用setTimeout()函数?我已经尝试过类似的方法,但它不起作用:fetchHole:function(){//getdata},addHole:function(){//myqueryaddnewsetTimeout(function(){this.fetchHole()},1000)},我收到此错误消息:UncaughtTypeError:this.fetchHoleisnotafunction 最佳答案 在您的函数声明中添加一个bind()调用:setTimeout(function(){this
我有一个针对iOS和Android设备的jQueryMobileWeb应用程序。应用程序的一个组件是一个后台任务,它定期检查a.)本地数据的更改和b.)与服务器的连接。如果两者都为真,则任务推送更改。我正在使用一个简单的基于setTimeout()的函数来执行此任务。每个失败或成功条件都会在后台任务上调用setTimeout(),确保它以30秒的间隔运行。出于调试目的,我使用最后一个任务运行时的时间戳更新了一个状态div。在任何桌面浏览器中,这都可以正常工作;但是,在iOS或Android上,经过一段时间后,任务会停止执行。我想知道这是否与设备的节能设置有关——当iOS进入待机状态时,
我在Nodedocumentation上读到了这个:setImmediate(callback,[arg],[...])Toschedulethe"immediate"executionofcallbackafterI/OeventscallbacksandbeforesetTimeoutandsetInterval但是,我看到了相反的情况。setTimeout在setImmediate之前执行。是否有人对此行为有解释,或有关Node事件循环的任何文档?谢谢:)代码:varindex=0;functiontest(name){console.log((index++)+""+name)