如果我启动2个这样的功能:
prepare_data();
read_data();
然后我猜他们正在同时运行。但是你可以看到第二个函数取决于第一个函数,那么如何在第一个函数完成后运行后者呢?
答案 0 :(得分:10)
Javascript和大多数其他语言,按顺序运行代码。
因此,他们不同时运行。
实际上,不可能同时运行两个不同的Javascript代码。但是,在许多其他语言中,可以使用线程。
但是,如果他们进行AJAX调用,则两个函数调用的相应服务器端代码将同时运行 为了防止这种情况,你需要让第一个函数接受一个回调参数并将它传递给第二个函数。
答案 1 :(得分:4)
我假设第一个调用会产生某种异步调用,第二个调用依赖于它,否则这两个函数将按顺序执行。
如果是这样,你需要在第一个回调中做第二个。例如,在jQuery中:
function prepare_data() {
$("#data").load("/load_data.php", function() {
read_data();
});
}
如果没有关于您使用的是vanilla Javascript还是特定库的更多信息,我们无法解释您应如何解决这个问题。我强烈建议使用某种类型的库来安装AJAX。
答案 2 :(得分:2)
可能要在第一个功能函数成功执行后调用第二个函数,如果是,那么你可以这样做
$('button').click(function()
{
function1(someVariable, function() {
function2(someOtherVariable);
});
});
function function1(param, callback) {
alert('Now first function will be called.');
callback();
}
答案 3 :(得分:1)
@SLaks
事实上,不可能运行两个 不同的Javascript代码片段 同一时间。但是,在许多其他方面 语言,有可能使用 线程。
这完全正确吗?你不能使用网络工作者并行运行JavaScript?