Node.js 多个客户端同时调用的异步函数中的javascript变量值

Node.js 多个客户端同时调用的异步函数中的javascript变量值,node.js,asynchronous,scope,server,Node.js,Asynchronous,Scope,Server,我正在node.js中安装一个web服务器, 特别是,我正在开发一个订单管理模块 该模块封装在一个匿名函数中 (function(){})(); 如果使用“insertOrder”函数,我声明变量顺序如下: var order = { user_id: '', address_id: '', payed: false, accepted: false, shipped: false }; 然后用我调用的与数据库交互的

我正在node.js中安装一个web服务器, 特别是,我正在开发一个订单管理模块

该模块封装在一个匿名函数中

(function(){})();
如果使用“insertOrder”函数,我声明变量顺序如下:

    var order = {
      user_id: '',
      address_id: '',
      payed: false,
      accepted: false,
      shipped: false
    };
然后用我调用的与数据库交互的异步函数“返回”的值填充它

此应用程序将由多个客户端同时使用

现在,假设两个用户想要下一个命令,那么每次调用函数get时,变量是否会被重新初始化为起始对象,从而覆盖第一次执行期间所做的更改?还是每次客户端调用服务器时都会生成上下文? 我知道node.js不是这样的,但我仍然无法理解这一点 出去

即。 上一次迭代的变量值是否会以某种方式保留并使用到第一次函数调用结束,还是在函数再次被调用时丢失

多谢各位

编辑:问题的进一步解释


用户id将用于检索订单要发送到的地址。如果
var order={…}
insertOrder
函数中,那么每次调用
insertOrder
函数时,都会重新初始化
insertOrder
函数,错误的用户id将导致项目发送到错误的地址。作用域是隔离的,因此即使在异步情况下也不应该有任何局部变量的混合


是的,但我的问题是:上一次迭代的变量值是否会以某种方式保留并一直使用到第一个函数结束,还是在函数再次被调用时丢失?js.fiddle的问题:函数一被调用就解决了,因为它不等待任何异步响应,再加上insertOrder()不会同时被调用,而是在第一次调用结束后被调用,因此这是一个后续调用函数作用域被封装,因此不应该有任何变量混合。我在小提琴上添加了超时,但我不确定这是否正确地证明了这一点。您无法在您的环境中运行测试吗?是的,很遗憾,我目前无法运行测试,我正在尝试找出开发此模块的正确方法。OK,我又尝试了一个示例。函数中的变量是隔离的,因此对同一函数的第二次调用将创建一个新的作用域。