Tag: eventqueue

了解node.js事件队列和process.nextTick

我很难理解到底是如何process.nextTick做它的事情。 我以为我明白,但似乎无法复制我觉得这应该工作: var handler = function(req, res) { res.writeHead(200, {'Content-type' : 'text/html'}); foo(function() { console.log("bar"); }); console.log("received"); res.end("Hello, world!"); } function foo(callback) { var i = 0; while(i<1000000000) i++; process.nextTick(callback); } require('http').createServer(handler).listen(3000); 当foo循环时,我会发送多个请求,假设handler将在foo后面排队几次,只有当foo完成时, callback才会被排队。 如果我对这个方法是正确的,我认为结果将如下所示: received received received received bar bar bar bar 但事实并非如此,这只是连续的: received bar received bar received bar received bar 我看到foo在执行预期的callback之前正在返回,但似乎callback是在线,而不是在队列的末尾,在所有的请求后面。是这样的吗? 也许我只是不明白节点中的事件队列是如何工作的。 请不要在这里指出我的意思。 […]