-4

我在 JavaScript 中有 3 个方法,我想一个接一个地调用,也就是说按顺序调用。

recuperer_from_proposer_liste_idchamp();
nombre_etape();
4

3 回答 3

1

除非有任何异步调用(例如 AJAX 请求),否则这些方法将按照您键入它们的顺序运行。

JavaScript 解释器逐行执行命令。

如果您有异步调用,则需要使用回调函数处理这些调用。如果你不明白回调是如何工作的,网上有很多指南

于 2012-11-10T11:07:17.633 回答
0

如果你确实在做一些异步的事情,你必须找出方法何时完成它们的工作。所以调用方法1:

method1 ();

然后 method1 需要通知我们它的操作结束,为此它必须调用一个名为 method1_finished 的方法,然后调用 method2:

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();
于 2012-11-10T11:13:57.153 回答
0

您可能必须将逻辑更改为这样

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
    })
}
于 2012-11-10T11:20:22.903 回答