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)