gpt4 book ai didi

Node.js - 通过 sleep 模拟 I/O

转载 作者:太空宇宙 更新时间:2023-11-03 23:37:59 25 4
gpt4 key购买 nike

我的目标是使用 node.js 展示非阻塞代码的强大功能,因此我尝试使用 sleep 语句模拟 I/O 事件,但我的努力一直失败:

var http = require('http');
var url = require('url');

http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});

if( url.parse(request.url).pathname == '/wait' ){
var startTime = new Date().getTime();
while (new Date().getTime() < startTime + 15000);
response.write('Thanks for waiting!');
}
else{
response.write('Hello!');
}

response.end();
}).listen(8080);

console.log('Server started');

当我访问http://localhost:8080/wait时之后http://localhost:8080 ,两者都在等待循环。

有什么建议吗?

最佳答案

setTimeout 是你的 friend ,大括号也是。

app.use(function(request, response, next) {
var doIt, startTime;
if (request.path === '/wait') {
startTime = new Date().getTime();
doIt = function() {
if (new Date().getTime() < startTime + 15000) {
response.write('Thanks for waiting!');
return setTimeout(doIt, 1000);
} else {
return response.end();
}
};
return doIt();
} else {
response.write('Hello!');
return response.end();
}
});

关于Node.js - 通过 sleep 模拟 I/O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29155911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com