尝试了解有关Javascript-Node.js异步调用堆栈的更多信息

尝试了解有关Javascript-Node.js异步调用堆栈的更多信息,javascript,node.js,asynchronous,callstack,Javascript,Node.js,Asynchronous,Callstack,如果我有以下代码: var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/:name', function(req, res, next) { let name = req.params.name; setTimeout(()=>{ res.render('index', { title: name }); },18000)

如果我有以下代码:

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/:name', function(req, res, next) {

  let name = req.params.name;
  setTimeout(()=>{
    res.render('index', { title: name });
  },18000);

});

module.exports = router;
我打开浏览器,多次尝试在sametime中使用不同的名称参数值请求此API,例如:
localhost:3000/param1、localhost:3000/param2、localhost:3000/param3

基于JavaScript调用堆栈的概念,为什么setTimeOut回调中的name会在每个请求中获得相同的
req.params.name

请检查屏幕截图。

获取相同的值-什么值?“为什么setTimeOut回调中的名称在每个请求中获取相同的req.params.name值”-是什么让你认为这是一样的?听起来在你的实际代码中,你可能缺少一个
let
var
来正确声明
name
…或者你的客户端代码无法处理并发请求。@Quentin,如果我发送请求:localhost:3000/param1,name=req.params.name,因此,相同的name值与setTimeout中的name值相同