我在 JavaScript 中有 3 个方法,我想一个接一个地调用,也就是说按顺序调用。
recuperer_from_proposer_liste_idchamp();
nombre_etape();
我在 JavaScript 中有 3 个方法,我想一个接一个地调用,也就是说按顺序调用。
recuperer_from_proposer_liste_idchamp();
nombre_etape();
除非有任何异步调用(例如 AJAX 请求),否则这些方法将按照您键入它们的顺序运行。
JavaScript 解释器逐行执行命令。
如果您有异步调用,则需要使用回调函数处理这些调用。如果你不明白回调是如何工作的,网上有很多指南。
如果你确实在做一些异步的事情,你必须找出方法何时完成它们的工作。所以调用方法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();
您可能必须将逻辑更改为这样
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
})
}