简体   繁体   中英

How to use callback function inside a function?

I want to call a callback function inside a function.so i don't know how to do that

 function call(){
  pg.connect(conString, function(err, client, done) {
    if(err) {
      return console.error('error fetching client from pool', err);
    }
    client.query('INSERT into post1 (data) VALUES ($n)', function(err, result) {
      //call `done()` to release the client back to the pool
      done();

      if(err) {
        return console.error('error running query', err);
      }
      console.log(result.rows[0].number);
      //output: 1
    });
  });
}
board.on("ready", function() {

  // Create a new generic sensor instance for
  // a sensor connected to an analog (ADC) pin
  var sensor = new five.Sensor("A0");

  // When the sensor value changes, log the value
  sensor.on("change", function() {
    var n = this.value();
    //i want to call that function here 
  });
});

and i also want to call this function in another callback function is this the correct way to do or suggest me the right one.

You could do something like this, where you are passing a function into your function. So callback would be a function in this case.

function call(callback){
  pg.connect(conString, function(err, client, done) {
    if(err) {
      return console.error('error fetching client from pool', err);
    }
    client.query('SELECT $1::int AS number', ['1'], function(err, result) {
      //call `done()` to release the client back to the pool
      done();
      callback(); //execute here or wherever
      if(err) {
        return console.error('error running query', err);
      }
      console.log(result.rows[0].number);
      //output: 1
    });
  });
}

then you could call it like

call(function(){
    //some logic here.
})

or:

var someFunction = function()
{
   //do something
}

call(someFunction);

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