假设我有两行代码,code1和code2,两者都非常快速运行:
$(function(){
var flag=0
var fistElement=$("#someHTML");
var secondElement=$("#someOtherHTML");
fisrtElement.append(secondElement); //code1
flag=1 //code2
})
由于我认为可以立即完成两行代码(code1和code2),是否有可能在html更新(code2)之前完成标志更新(code2)?虽然通常在我用几个例子测试它时,code1总是在code2之前完成。
答案 0 :(得分:3)
JS是程序代码,它意味着它逐行执行(少数情况下代码是异步执行的。)
这意味着您的代码将始终以相同的顺序执行=> code1
始终会在//code2
答案 1 :(得分:0)
试试这个:
function foo(callback) {
//flag=1 //code2
console.log( "Code 2 executed" )
callback();
}
foo(function() {
//fisrtElement.append(secondElement); //code1
console.log( "Code 1 executed" )
});
这样可以测试IN JSFIDDLE
在此解决方案。您的代码应如下所示
$(function(){
var flag=0
var fistElement=$("#someHTML");
var secondElement=$("#someOtherHTML");
foo(1,function() {
fisrtElement.append(secondElement); //code1
//console.log( "Code 1 executed" )
});
function foo(f, callback) {
flag=f //code2
//console.log( "Code 2 executed" )
callback();
}
})
希望它有所帮助。感谢