node.js – 有人可以解释这个callback?
这里有多个node.js教程,演示如何创build一个服务器。 但是,它们以不同的方式编码。 那么,你怎么知道什么时候写一个,而不是另一个呢? 这些教程都没有解释他们为什么如此写。
例如…
例1:
// Create an http server, passing in a function for some reason: http.createServer(function(request, response) {
对比例2:
// Create an http server, and then start it var server = http.createServer(handleRequest); server.listen(PORT, function () {
提前致谢。 我真的很难理解这一点。
他们没有什么不同,真的。 首先,你正在定义处理请求的函数,然后不得不在最后开始监听。
http.createServer(function(request, response) { ... }).listen(PORT, function() { ... });
第二,你定义了处理请求的函数,不要使用链接。
function handleRequest(request, response) { ... } var server = http.createServer(handleRequest); server.listen(PORT, function() { ... });
他们都做同样的事情。 这取决于你如何写它。
偏好真的。
有些人喜欢在参数列表中处理函数定义(典型的文档也是如此),而另外一些则喜欢传入一个已定义函数的名字。
我发现第二个例子更容易维护,而且更加灵活,但是它真的归结为偏好。