我有这段JavaScript代码:
if (direction !== "leftnav") {
// DO THINGS
};
setTimeout(function () {
//DO OTHER THINGS AFTER THE FIRST THING
}, 1000);
是否可以在第一个函数执行后立即执行第二个函数,而不必使用超时事件?
感谢您的帮助!
我有这段JavaScript代码:
if (direction !== "leftnav") {
// DO THINGS
};
setTimeout(function () {
//DO OTHER THINGS AFTER THE FIRST THING
}, 1000);
是否可以在第一个函数执行后立即执行第二个函数,而不必使用超时事件?
感谢您的帮助!
是的,这是可能的。这里有一个使用你提供的唯一代码的例子:
if (direction !== "leftnav") {
// DO THINGS...
// THEN
doOtherThings();
// THEN
doMoreThings();
};
var doOtherThings = function(){
//DOING OTHER THINGS
}
var doMoreThings = function(){
//DO EVEN MORE THINGS
}
write()
函数内,你可能正在执行AJAX调用,或等待用户单击某些内容等等。解释器继续执行下一行代码,这一部分将立即写入,并按照阻塞顺序进行。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/>");
输出
I'm blocking, blah
Running
I'm not blocking, blah
Running
你只需要按照你想要的顺序调用函数
function foo(){
//code
}
function bar(){
//other
}
bar();
foo();
就像这样,bar
会在foo
之前被调用。
if
代码块里面? - Ernest Friedman-Hill//DO THINGS
中是否正在进行 AJAX 调用?如果是,你可以简单地使用callback
。 - pixelbobby