是否有一个函数会在两行代码之间添加一个时间延迟.不是settimeout,因为settimeout在其参数中需要一个函数/对象.
我正在寻找像这样的伪代码
write "abc";
delay(500);
write "xyz";
Run Code Online (Sandbox Code Playgroud)
TIA
编辑:jimr在我的另一个线程中的解决方案适用于我的目的,Robusto 也是如此.
我只是想知道为什么Robusto和CMS的链接给出的"睡眠"方法不是首选.与settimeout方法有什么不同,因为它们都会在代码中引入暂停?(settimeout在执行函数之前暂停,sleep方法在执行下一行之前暂停.)
Rob*_*sto 17
以下是笨重和丑陋的我永远不会在我自己的代码中做到这一点,我不推荐它,但它表明这样的事情是可能的.
// time arg is in milliseconds
function delay(time) {
var d1 = new Date();
var d2 = new Date();
while (d2.valueOf() < d1.valueOf() + time) {
d2 = new Date();
}
}
Run Code Online (Sandbox Code Playgroud)
Joe*_*orn 14
您可以使用setTimeout,以便几乎看起来代码在两行上运行:
write('abc')
setTimeout(function() {
write('xyz')
},500)
Run Code Online (Sandbox Code Playgroud)
Tob*_* P. 12
睡眠方法不可用,因为JavaScript执行会阻止浏览器,因此睡眠方法会阻止浏览器500毫秒,你真的想让你的浏览器没有响应半秒吗?
按建议使用setTimeout.
在JavaScript 1.7中,yield与async.js结合使用,您可以执行以下操作:
var yourFunction = _(function () {
write("abc");
yield to.sleep(.500);
write("xyz");
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42836 次 |
| 最近记录: |