回调本地函数作为参数

时间:2019-06-25 18:45:42

标签: javascript node.js callback

假设我有这个模块:

module.exports = {
  functionA: function (err, callback, res) {
    // some data process
    callback(err, this.functionB, res)
  },
  functionB: function(){
    //some data process
  }
}

在我的主要功能上,我接到了这样的呼叫:

functionA(err, functionC, res)

这给我functionC中的callback(functionB)未定义,如下所示:

  functionC: function (err, callback, res) {
    callback(/*some parameter */) //err: callback is undefined
  }

我尝试使用来更新functionA

functionA: function (err, callback, res) {
    // some data process
    callback(err, this.functionB, res)
}

但是我没有得到functionB的定义。

1 个答案:

答案 0 :(得分:-1)

您为什么还要尝试这样做?

如果我确定您要做什么,可以选择以下方法:

module.exports = {
  functionA: function (err, callback, res) {
    // some data process
    this.functionB(err, callback, res);
  },
  functionB: function(err, callback, res){
    //some data process
    callback(err, res)
  }
}

我相信您的方法行不通,因为您尝试返回未导出的模块函数,但我没有检查,但我认为在模块外部导出可能可行。 另一件事是,考虑到这是一个导出函数的事实,您可以直接调用它而不是将其带回回调中:)因此,您的方法是尝试解决一个不存在的问题。