请参阅下面的示例代码,我在 promise/Async 调用之外声明了一个变量,并且每个请求到达此行时都会为其分配值,现在我的问题是,如果许多请求到达并到达该console.log(something);
行时到达同时:
node.js 将每个请求视为一个对象并保留每个请求的something
特定值,还是只打印最后一个的值?
如果它打印最后一个,我如何解决问题并保持something
特定于每个请求?
router.get('/test', function(req, res) {
var something = req["request's specific data"];
anAsyncCall(something2).then(function(data) {
//value of something?
console.log(something);
});
});
用var
关键字声明的变量局部作用域为它们声明的函数。
每次调用该函数都会创建一个新范围和该范围内的一个新变量。
function myFunction(myValue) {
var copyOfMyValue = myValue; // For demonstration purposes. Function arguments are the same as variables declared with var
function showMyValue() {
console.log(copyOfMyValue);
}
return showMyValue;
}
setTimeout(myFunction(1), 100);
setTimeout(myFunction(2), 90);
setTimeout(myFunction(3), 80);
setTimeout(myFunction(4), 70);
setTimeout(myFunction(5), 60);
这是标准的 JavaScript 行为,与 Node.JS 无关。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句