Javascript等待一个函数的结束,包括来自node.js的asynchronousMYSQL查询?

我有Javascript的问题,等待下面的行被称为之前完成的function。 前面的函数包含Javascript MYSQL查询调用(node.js的一个库)。 那么它会看起来像:

function first() { /** * a lot processes to execute * including Asynchronous processes * like running Queries using Javascript MYSQL Library from node.js */ console.log("I am the first one!"); } first(); console.log("I am the second one!"); 

然后当我执行这个,它发生像:

 I am second one! I am first one! 

我如何让他们保持队列顺序运行?

注意:现在对于所有对这个问题感到困惑的人来说,请再次跳转/关注我新创build的问题:
大家请按照/跳到这个新的问题: Node.js MYSQL来检测查询的INSERT / UPDATE完整性?

将第二个函数的callback传递给第一个函数的调用。 在第一个函数结束时,调用callback函数:

 function one(parm, callback) { // do something callback(); } function two() { // do something else } one("my parm", two); 

您将需要构build您的代码来使用callback

 function first (callback) { // do your stuff callback.call(); } first(function () { console.log("I am the second"; }); 

你遇到的问题在JavaScript之前用其他语言进行编程的人很常见,比如c/java ,你认为JavaScript会执行以下操作:

  Line of code1. Execute,when it's done go to the next. Line of code2. Execute,when it's done go to the next. Line of code3. Execute,when it's done go to the next. 

在JavaScript中实际发生的事情更像是:

  Line of code1. Execute Line of code2. Execute Line of code3. Execute 

为了使JavaScript像预期的那样工作,您需要以面向事件的方式进行编程,也就是说,您需要指定要按特定顺序运行哪些function。 要在JavaScript这样做,您需要使用callbacks ,例如:

  function1 (parameter A,function2){ //... function2(parameter B,function3)} function2 (parameter B,function3){//...} function3 (){//...} 

你可以概括更多的例子,但是我认为这样做会让理解更容易。 你可以在网上find很多关于这个的文章。 googlesearch的第一个结果给了我这个链接 。

快乐的编码!