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

时间:2016-03-18 15:21:51

标签: node.js asynchronous scope server

我在node.js中建立了一个web服务器, 特别是我正在为订单管理开发一个模块。

模块包含在匿名函数

(function(){})();

如果“insertOrder”函数我声明了这样的变量顺序:

    var order = {
      user_id: '',
      address_id: '',
      payed: false,
      accepted: false,
      shipped: false
    };

然后从我调用的与数据库交互的异步函数中“返回”值填充。

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

现在,假设两个用户想要下订单,每次调用函数时,变量是否会重新初始化为起始对象,覆盖第一次执行时所做的更改?或者每次客户端调用服务器时都会生成上下文? 我知道node.js不是这种情况,但仍然无法想象这一点 进行。

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

非常感谢。

编辑:进一步解释问题。

user_id将用于检索订单将要运送到的地址。错误的user_id将导致项目发送到错误的地址

1 个答案:

答案 0 :(得分:1)

如果var order = { ... }位于insertOrder函数内,则每次调用insertOrder函数order时都会重新初始化。范围是孤立的,因此即使在异步情况下也不应混淆局部变量。

jsFiddle