【问题标题】:How to use callback function inside a function?如何在函数内部使用回调函数?
【发布时间】:2016-03-08 02:09:07
【问题描述】:

我想在一个函数中调用一个回调函数。所以我不知道该怎么做

 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 
  });
});

我也想在另一个回调函数中调用这个函数,这是正确的方法还是建议我正确的方法。

【问题讨论】:

    标签: javascript jquery node.js callback


    【解决方案1】:

    你可以做这样的事情,你将一个函数传递给你的函数。所以回调在这种情况下是一个函数。

    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
        });
      });
    }
    

    那么你可以这样称呼它

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

    或:

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

    【讨论】:

    • 你为什么要在那里传递回调?
    • 对不起,你的问题一定没看懂,你想达到什么目的?
    • 对不起,我对此还不是 100% 清楚,所以您想在传感器发生变化时调用 call() 吗?然后在哪里做回调?
    • 当传感器发生变化时,我想将数据插入数据库,为此我尝试调用插入方法
    • 是的,是将这些传感器数据存储在数据库中的正确方式或其他方式
    猜你喜欢
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    相关资源
    最近更新 更多