node.js代码中回调参数的含义

时间:2013-12-22 20:40:25

标签: javascript node.js callback

我对Node.js很新,我只想弄清楚参数在代码的回调方法中是如何工作的。

我只能理解第一个,函数(req,res),因为我在服务器端工作时在Java中使用过它,但我真的不明白它是如何自动调用memcached函数或者是如何启动的如果有人可以向我解释这是如何工作的,我真的很感激。谢谢

server.on('request', function(req, res) {
  //get session information from memcached 
   memcached.getSession(req, function(session) {
    //get information from db 
    db.get(session.user, function(userData) {
      //some other web service call 
      ws.get(req, function(wsData) {
         //render page
         page = pageRender(req, session, userData, wsData);
         //output the response
         res.write(page);
         });
      });
    });
});

1 个答案:

答案 0 :(得分:1)

它可以粗略地与在Java中传递匿名类进行比较。例如,要在Java中对集合进行排序,您需要传递一个比较器类,该类具有比较两个对象的方法。之后,当排序算法需要比较对象时,它会调用提供的类中的函数。

在javascript函数中是第一类对象,这意味着我们不需要“包装器”类,可以将它作为参数传递给另一个函数。

在你的情况下,“memcached.getSession”将执行is't logic,找到会话,并调用你在第二个参数中传递的匿名函数,并将session作为参数。