繁体   English   中英

在前面的函数完成后运行另一个函数?

[英]run another function after preceding function has completed?

如果我启动2个这样的功能:

prepare_data();
read_data();

然后我猜他们在同一时间运行。 但是你可以看到第二个函数取决于第一个函数,那么如何在第一个函数完成后运行后者?

Javascript和大多数其他语言按顺序运行代码。

因此,它们不会同时运行。

实际上,不可能同时运行两个不同的Javascript代码。 但是,在许多其他语言中,可以使用线程。

但是,如果它们进行AJAX调用,则两个函数调用的相应服务器端代码将同时运行。
为了防止这种情况,您需要使第一个函数接受一个回调参数并将其传递给第二个函数。

我假设第一个调用进行某种异步调用,第二个调用依赖于,否则这两个函数将按顺序执行。

如果是这样,你需要在第一个回调中做第二个。 例如,在jQuery中:

function prepare_data() {
  $("#data").load("/load_data.php", function() {
    read_data();
  });
}

如果没有关于你是否使用vanilla Javascript或特定库的更多信息,就不可能说出如何解决这个问题。 我强烈建议使用某种类型的库来安装AJAX。

可能是在第一个函数函数成功执行后要调用第二个函数,如果是,那么你可以这样做

$('button').click(function()
{
    function1(someVariable, function() {
       function2(someOtherVariable);
    });
});


function function1(param, callback) {
  alert('Now first function will be called.');
  callback();
} 

@SLaks

实际上,不可能同时运行两个不同的Javascript代码。 但是,在许多其他语言中,可以使用线程。

这完全正确吗? 你不能使用网络工作者并行运行JavaScript?

http://www.w3.org/TR/2009/WD-workers-20090423/

https://developer.mozilla.org/En/Using_web_workers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM