我在node.js中建立了一个web服务器, 特别是我正在为订单管理开发一个模块。
模块包含在匿名函数
中(function(){})();
如果“insertOrder”函数我声明了这样的变量顺序:
var order = {
user_id: '',
address_id: '',
payed: false,
accepted: false,
shipped: false
};
然后从我调用的与数据库交互的异步函数中“返回”值填充。
此应用程序将由多个客户端同时使用。
现在,假设两个用户想要下订单,每次调用函数时,变量是否会重新初始化为起始对象,覆盖第一次执行时所做的更改?或者每次客户端调用服务器时都会生成上下文? 我知道node.js不是这种情况,但仍然无法想象这一点 进行。
即。 是上一次迭代的变量值将以某种方式保留并使用,直到第一次函数调用结束或者在函数再次被调用时丢失?
非常感谢。
编辑:进一步解释问题。
user_id将用于检索订单将要运送到的地址。错误的user_id将导致项目发送到错误的地址
答案 0 :(得分:1)
如果var order = { ... }
位于insertOrder
函数内,则每次调用insertOrder
函数order
时都会重新初始化。范围是孤立的,因此即使在异步情况下也不应混淆局部变量。