Node js中的回调函数是否以同步方式执行?

Is Callback Functions in Node js execute in synchronous way?

我正在使用 websocket 库创建一些套接字以将数据传递到我的 application.some 我在我的代码中写了以下行。

 connection.on('message', function(message) 
  {
     SetOfInstruction1;  
     SetOfInstruction2;   
  });

我的疑问是:是SetOfInstruction1和SetOfInstruction2;依次执行或以异步方式执行(这意味着setOfInstruction2可以在setOfInstruction1之前执行)????

以下是 SetOfInstruction1 和 SetOfInstruction2 的示例:

示例 SetOfInstruction1

for (i 1 to n)
{
     find something1 in something2 array
     if something1 found then set found boolean to true else false;
}

SetOfInstruction2 的示例是

for (i:1 to n)
{
  if found =true; and someOtherConditions matches
  send message back  with true response
  else{
    //continue 
}


 }

这取决于您调用的函数。您需要阅读文档并查看哪些功能是异步功能,哪些不是。

例如 fs.readdir 将以异步方式调用,但 fs.readdirSync 不会。

已经说过,通常"regular" JS 操作,如遍历数组、设置变量值等,不会被异步调用。

关于 node.js 具体 api - 阅读文档。

SetOfInstruction1;
SetOfInstruction2;

这些指令将始终按此顺序执行。 Javascript 不会随机混淆各行的执行顺序。现在...

someFunc(function () { console.log('first'); });
someFunk(function () { console.log('second'); });

这里完全无法预测哪个会先被记录。这取决于 someFunc and/or someFunk 是异步的还是同步的,如果它们是异步的,哪个先完成。同样,我们可以绝对断言 someFunc 将在 someFunk 之前被调用,但回调的执行顺序取决于这些函数的内部结构。

有接受回调的同步函数,如下所示:

arr.sort(function (a, b) { return a - b; });
console.log(arr);

这里的执行顺序就是你看到的。控制台将记录排序后的数组。但是也有接受回调的异步函数:

setTimeout(function () { console.log('second'); });
console.log('first');

回调将在控制台登录后的某个时间调用 'first'。

您必须阅读函数的文档才能知道哪个是哪个。