2016-12-20 6 views
0

私はバックエンドコールを行い、名前の配列をフェッチする関数を持っています。このような機能があります。NodeJSのコールバック関数から値を取得する

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

私はこの機能を呼び出してこのリストを取得する機能がもう1つあります。 両方の機能が同じファイルにあります。

他の機能は、このようなものです。

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

任意の助けが理解されるであろう。

var txnList = this.getTxnList(index); 

は次のように行います:

+0

質問に「試行」の一部を追加してください – Shaharyar

+0

必要なデータは何ですか? – azad

+0

@Shaharyar投稿を更新しました。 –

答えて

1

ようなあなたの第二の機能で最初の関数を呼び出すことができるはずが原因の非同期動作にnodejs

//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

+0

データを取得しません。 –

+0

私は 'this'が問題を引き起こしていると思います。私は' this'を削除するように編集し、あなたの関数に名前を追加しました。また、コールバック関数で2つのパラメータを渡す必要があるので、あなたは最初のパラメータとして 'null'を渡しています。 – Shaharyar

+0

これが必要でした。それ以外の場合は、その機能を認識できません。しかし、今働いている。あなたの助けにお返事ありがとうございます。あなたは多くの時間を救った: –

-1

あなたは残念ながら、あなたがこれを行うことはできません

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

データを取得しない –

関連する問題