从NodeJS中的回调函数中获取价值

时间:2016-12-20 06:37:45

标签: javascript node.js function callback

我有一个执行后端调用并获取名称数组的函数。功能就是这样。

module.exports.getTxnList = function(index, callback) {
    ....some operations
    .....
    ....
    callback(null, response);
};

我还有一个功能,我想调用此函数并获取此列表。 这两个函数都位于同一个文件中。

另一个功能是这样的。

module.exports.getTxnAvailability = function(index, lid, callback) {
    ...
    ...
    ...
};

我尝试了很多东西,但我没有从前一个函数中获取数据。

这就是我试图做的事情。

var that = this;
that.getTxnList(index, function(response){
    // Here you have access to your variable
    console.log("List: " + response);
})

这个

var txnList=this.getTxnList(index);

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

遗憾的是,由于异步行为,您无法执行此nodejs:

var txnList = this.getTxnList(index);

这样做:

//name the function for local use
var getTxnList = module.exports.getTxnList = function (index, callback) {
    ... }

module.exports.getTxnAvailability = function(index, lid, callback) {

    getTxnList(index, function(err, response){
        //here you have access to your variable
        //rest of your logic will be written here

        var txnList = response;
    }); 
};

Reference: to understand how async code works

Reference: to understand what is callback hell and how to solve it

答案 1 :(得分:-1)

您应该可以在第二个函数中调用第一个函数,如

module.exports.getTxnAvailability = function(index, lid, callback) {
  module.exports.getTxnList(index, function(err, data) {
    console.log(data);
  });
};