cmp*_*ger 3 javascript jquery timeout
我有这个javascript代码:
if (direction !== "leftnav") {
// DO THINGS
};
setTimeout(function () {
//DO OTHER THINGS AFTER THE FIRST THING
}, 1000);
Run Code Online (Sandbox Code Playgroud)
是否可以在第一个之后执行2e函数而不必使用超时事件?
非常感谢你的帮助 :)
是的,这是可能的.以下是使用您提供的唯一代码的示例:
if (direction !== "leftnav") {
// DO THINGS...
// THEN
doOtherThings();
// THEN
doMoreThings();
};
var doOtherThings = function(){
//DOING OTHER THINGS
}
var doMoreThings = function(){
//DO EVEN MORE THINGS
}
Run Code Online (Sandbox Code Playgroud)
如果你在if语句中阻塞了,那么Javascript将从上到下运行.如果是这样,你可以将代码放在if语句的正下方,在超时之外,它将正常运行.如果它是异步的,您可以使用在第一个函数完成时触发的回调来启动第二个函数.
下面提供的示例并不是真正有效的做事方式,但更多用于说明我上面所说的内容.在该write()函数中,您可能正在进行AJAX调用,或者等待用户单击某些内容,或者您有什么内容.解释器继续到下一行,该段将立即写入,并按阻止顺序.
JS
var write = function (v, cb) {
setTimeout(function() {
document.write(v);
cb && cb();
}, 1000);
}
if (true) {
write("I'm not blocking, blah<br/>", function() {
document.write("Running<br/>");
});
}
if (true) {
document.write("I'm blocking, blah<br/>");
}
document.write("Running<br/>");
Run Code Online (Sandbox Code Playgroud)
产量
I'm blocking, blah
Running
I'm not blocking, blah
Running
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/robert/vvmyk/
| 归档时间: |
|
| 查看次数: |
13290 次 |
| 最近记录: |