首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么settimeout会阻塞eventloop

为什么settimeout会阻塞eventloop
EN

Stack Overflow用户
提问于 2013-04-06 22:18:20
回答 1查看 1.1K关注 0票数 6

注意:对于那些关于settimeout的人来说,这不是一篇重复的文章,这里的关键答案是浏览器设计选项。

我开始研究node.js:一个测试异步的简单示例:

代码语言:javascript
复制
var http=require('http');

http.createServer(
    function(request, response){


        response.writeHead(200);
        response.write("Hello, dog is running");
        setTimeout(
            function(){
                response.write("Dog is done");
                response.end();
            },
            10000
        );

    }
).listen(8080);
console.log("Listen on port 8080") 

有趣的是,在命令lind和curl中的行为和在浏览器中的行为是不同的:在Ubuntu 12.10中,我在两个控制台中使用curl localhost:8080,它们在几乎相同的10个发送中响应。

但是,我打开两个浏览器,几乎同时发出请求,但整个过程却花了我20秒?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-07 01:30:22

等待的是浏览器,而不是node.js

如果您在两个选项卡中运行服务器和请求http://localhost:8080/,则需要20秒,因为浏览器在启动第二个请求之前会等待对同一个url的第一个请求。

如果您运行服务器并在两个选项卡中请求http://localhost:8080/1http://localhost:8080/2,则再次需要10秒。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15852011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档