Node.js nodejs中的变量分配是同步的吗?
说我们有Node.js nodejs中的变量分配是同步的吗?,node.js,Node.js,说我们有 var x =3; var y = 4; var z = x*y; console.log(z); 我们怎么知道它不会打印未定义的变量z 如果是异步的,是否有一个函数用于通过回调将值分配给变量,以便我们在使用它们时可以确定它们的值。 如果是同步的,则在加载模块时,如 var express = require('express'); 如果在一个脚本中加载其中的几个脚本,速度不是很慢吗 nodejs中的变量分配是同步的吗 是的 实际上,任何语句序列都是同步执行的 您可能会对以下类
var x =3;
var y = 4;
var z = x*y;
console.log(z);
我们怎么知道它不会打印未定义的变量z
- 如果是异步的,是否有一个函数用于通过回调将值分配给变量,以便我们在使用它们时可以确定它们的值。
- 如果是同步的,则在加载模块时,如
var express = require('express');
如果在一个脚本中加载其中的几个脚本,速度不是很慢吗
nodejs中的变量分配是同步的吗
是的
实际上,任何语句序列都是同步执行的
您可能会对以下类型的情况感到困惑:
var x = LongRunningAsyncTask();
console.log(x);
在这里,LongRunningAsyncTask
无法返回其结果,因为它还未知。因此,x
可能不是您想要的,这就是为什么假设LongRunningAsyncTask
是以回调方式实现的,您需要编写
LongRunningAsyncTask(function callback(x) {
console.log(x);
});
或者如果LongRunningAsyncTask
返回承诺,则
LongRunningAsyncTask() . then(x => console.log(x));
或使用异步函数:
async function foo() {
var x = await LongRunningAsyncTask();
console.log(x);
}
可能的副本。这个线程应该会解决您的所有问题。那么nodejs只是普通的javascript?我认为关键在于它是异步执行的。这仍然不能回答我的问题,即在一个脚本中加载多个require是否很慢。当您加载带有require的模块时,大部分时间它都不是通过网络(文件在服务器上),因此不会很长时间。您可能正在考虑通过具有延迟的网络进行请求。