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'。
您必须阅读函数的文档才能知道哪个是哪个。
我正在使用 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'。
您必须阅读函数的文档才能知道哪个是哪个。