2016-08-01 42 views
0

は、私は両方とも非常に高速runnedであるのコード、CODE1とCODE2の2行を有すると仮定する:即座に終了した2つのコードでは、1行目が終了する前に2行目が終了する可能性はありますか?

$(function(){ 
    var flag=0 
    var fistElement=$("#someHTML"); 
    var secondElement=$("#someOtherHTML"); 

    fisrtElement.append(secondElement); //code1 
    flag=1        //code2 
}) 

Iがとるであろうコード(CODE1とCODE2)の両方のラインが瞬時に完了することができるので、ありますhtmlの更新(code2)の前にフラグの更新(code2)が終了する可能性はありますか?通常、私はいくつかの例でそれをテストしますが、code1は常にcode2の前で終了します。

+1

上記のコードは手続き型です – Phil

+1

JavaScriptがコード1を実行する前にコード1が終了するのを待ちます –

+1

このコードは非同期に実行されません – madalinivascu

答えて

3

JSは手続き型コードであり、行単位で実行されることを意味します(ただし、コードが非同期で実行されるケースはほとんどありません)。

これは、これを試してみてください、あなたのコードは常に=>code1は常に//code2

+0

確かに私はcode1を知っているだろう**開始**の前にcode2が、私の疑いのポイントは、code1 ** FNISH ** code2の前にあるか? – badbye

+0

@badbye '実行された'と言って、**開始**から**仕上げ** – Justinas

+0

これはあなたの引数に反例であるかもしれない:

bonjour
badbye

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

希望します。ありがとう

+0

申し訳ありませんが、私は間違っているかもしれませんが、なぜコードを動かすと非同期になりますか?そして、あなたのコードはあまり意味がありません:最初に 'flag'に' 1'を渡し、フラグに1を代入し、コールバックを行い、 'foo'の後で同じことをやり直すよりも。 Fiddleでは、最初に 'foo'関数を実行し、' 'Code 2 executed''を記録し、コールバックを実行します。ここには非同期はありません。 – Justinas

+0

申し訳ありません申し訳ありませんコードを整理してコメントをいただきありがとうございました。上の例は、非同期を説明するのにベストではありませんが、コールバックは確実にそれを実現する方法ですが、関数doesntにコードを移動するだけで、非同期になります。 –

+0

実際にコールバックは**非同期になりません**。 'setTimeout'が実行されます。ここをクリックしてください:http://stackoverflow.com/questions/9516900/how-can-i-create-an-asynchronous-function-in-javascript – Justinas

関連する問題