简体   繁体   中英

nodejs/pg, callback parameters

I am fairly new to node.js, and haven't done much of javascripts. Tried to search my problem, but couldn't find specific answer related to it.

So, while I was working on attaching the PostgreSQL to my app, I followed a snippet from some example on web, and it seems like working pretty well.

Anyways I wanted to understand how it works, I had a problem understanding specific part of the following code:

module.exports = {
  query: function(text, values, cb) {
    pool.connect(function(err, client, done) {
      if(err) {
        return console.error('error fetching client from pool', err);
      }

      console.log(client);

      client.query(text, values, function(err, result) {
      done();
      cb(err, result);
      })
    });
  }
}

and the specific part is:

pool.connect(function(err, client, done) { ... }

What I understood is connect function takes callback function with err, client, and done as parameter, however I couldn't understand from where the function(err, client, done) is passed to connect function as parameter . By where, I mean an object or a caller that call connect function.

I had suspected that it would be handled internally, but I wanted to know clearly.

Bydefault all callback function, the first parameter must be an error and second will be a result of ur callback function.

Done is similar to callback keyword, which says, your task is over and give response back from where the function has called, its just like return statement in normal function

example:

 function callbackDemo(arg1, arg2, callback) {
  if (condition)
    callback(null, "Success");
    else
    callback("error");  
   }

callbackDemo(1, 2, function(err, result){

  if(!err)
    console(result);
   else
    console.log(err);
 });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM