小编Pha*_*Vvs的帖子

Node js Express 应用程序中使用 setTimeout 获取请求的并发性

控制台日志图片

const express = require('express');
const app = express();
const port = 4444;

app.get('/', async (req, res) => {
  console.log('got request');

  await new Promise(resolve => setTimeout(resolve, 10000));

  console.log('done');
  res.send('Hello World!');
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});
Run Code Online (Sandbox Code Playgroud)

如果我同时点击 get 请求 http://localhost:4444 三次,那么它会返回如下日志

got request
done
got request
done
got request
done
Run Code Online (Sandbox Code Playgroud)

由于节点事件循环和回调队列位于进程线程外部,它不应该以下面的方式返回输出吗?(也许我错了,但需要对 Nodes 内部结构有一些了解)和 Node 中的外部 api 请找到附图 Javascript 运行时环境

got request
got request
got request
done
done
done
Run Code Online (Sandbox Code Playgroud)

concurrency settimeout node.js

1
推荐指数
1
解决办法
672
查看次数

标签 统计

concurrency ×1

node.js ×1

settimeout ×1