我在JavaScript中有3種方法,我想一個接一個地調用,也就是說按順序。以訂單方式致電javascript方法
recuperer_from_proposer_liste_idchamp();
nombre_etape();
我在JavaScript中有3種方法,我想一個接一個地調用,也就是說按順序。以訂單方式致電javascript方法
recuperer_from_proposer_liste_idchamp();
nombre_etape();
除非有任何異步調用(例如AJAX請求),否則這些方法將按照您輸入的順序運行。
JavaScript解釋器一行一行地執行命令。
如果您有異步調用,那麼需要使用回調函數來處理這些調用。如果你不明白回調是如何工作的,那麼有很多guides online。
不,我在 –
@AzeazeAzeaze中使用sqlite這與您的問題或我的答案沒有關係。 – Jivings
@Jivings:我認爲大多數JS SQLite API是異步的 – ThiefMaster
如果你確實做了一些異步的事情,你必須找出方法完成工作的時間。所以調用方法1:然後
method1();
方法1需要告知我們它的結束的行動和它必須調用一個方法叫做method1_finished然後調用方法2:
method1_finished() {
method2();
}
也是一樣對於方法3:
method2_finished() {
method3();
}
根據其中代碼來自哪裏需要回調,你往往能夠直接定義一個匿名函數:
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
// call succeeded, now go on to the next step
}
}
xmlhttp.open("GET","someurl.php",true);
xmlhttp.send();
thnak你的幫助:) –
不客氣,我希望你能夠讓你的代碼運行。 –
您可能需要你的邏輯改變這樣的事情
function getRowsFromDatabase(callback) {
// do your fancy database connection
// and data retrieval here
// when you're ready, call the registered callback
if(typeof(callback) == "function") {
callback(rowsRetrieved);
}
}
function displayRowsOnScreen() {
getRowsFromDatabase(function(rows){
// do the dom magic here
})
}
所以有什麼問題嗎? – onemach
只要你沒有一些異步的魔法,它們就是按順序運行的。再說一遍:問題是?... – akluth
我該怎麼辦,因爲它們被稱爲異步。 –