问题是这样的, 本来是想做一个提供抓取服务的 API 项目, 使用的是 express. 在测试的过程中, 测试一下异步抓取的效果, 结果在同一个浏览器的多个 Tab 访问同一个 route 会被阻塞住, 然后在 stackoverflow 中找到这篇一样的问题, 最后一句话 "I got the reason, it is because I ran two '/a' on the same browser. I just tried to run one in chromium, and the other one in firefox, they were handled asyncly. Looks interesting." 然后我在本地用 ruby 脚本写了个多线程访问测试了一下, 又能够异步并不阻塞(用不同的浏览器也可以).
在 Node.js 入门 中也有一个编写非阻塞的例子, 其使用的是 node.js 的 http 库, 并没有像 express 那样同浏览器访问会阻塞的情况, 所以我猜想应该是 express 在处理请求的时候做了某些处理(猜测在 Cookie 上), 让同浏览器的访问进行了阻塞. 因为刚刚接触 express 不久, 又想弄清楚是怎么一回事, 是否有人知道是 express 做了什么处理或者是什么地方的影响?