是否可能有两个即时完成的代码,第二行在第一行完成之前完成?

时间:2016-08-01 05:19:59

标签: javascript jquery html

假设我有两行代码,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之前完成。

2 个答案:

答案 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();
   }
})

希望它有所帮助。感谢