从回调函数获取值并设置为父函数

时间:2017-07-09 18:00:28

标签: javascript node.js rest express callback

我是Nodejs和javascript的新手,并且正在研究nodejs api代码。我正在使用GandiAPI检查domainAvaliablity(项目相关要求)并创建了一个这样的get请求方法(checkDomainAvaliablity)。

  exports.checkDomainAvaliablity = function (req, res) {
  gandiApi.methodCall('domain.available', [gandiapikey, [domain]], callback)      
  };

我有一个回调函数,它有2个参数(我无法改变)。 我能够在回调函数中成功获得值。 现在我想回归"价值"来自回调,并希望设置在" res" checkDomainAvaliablity函数的paramameter(父函数)(类似 res.json(task))。

 var callback = function (error, value) {

   console.dir(value)
   if (value[domain] == 'pending') {
   console.log('result is not yet ready')
   setTimeout(function () {
   gandiApi.methodCall('domain.available', [gandiapikey, [domain]],
   callback)
   }, 700)
   }
   else {
    console.dir(value)
   }


   // I want to return "value" from here and want to set in "res"  paramameter of checkDomainAvaliablity function (Parent function).
 } 

注意:必须使用callbackfuncion。

1 个答案:

答案 0 :(得分:0)

谢谢@trincot。将回调函数放在父函数中可以正常工作。

exports.checkDomainAvaliablity = function (req, res) {
  domain = req.params.domainAvaliablity
  var callback = function (error, value) {
    console.log("logging" + value + error)
    if (value[domain] == 'pending') {
      console.log('result is not yet ready')
      setTimeout(function () {
        gandiApi.methodCall('domain.available', [gandiapikey, [domain]],
          callback)
      }, 700)
    }
    else {
      res.send(value);
      console.dir(value)
    }
    
  }

  gandiApi.methodCall('domain.available', [gandiapikey, [domain]], callback)
  
};