簡體   English   中英

Node.js獲取函數的返回值

[英]Node.js get the return value of a function

我剛開始研究node.js並了解它的概念,我在理解回調方面遇到了一些麻煩,我想要做的是在函數getOffers()中調用函數getUserBranch()

我讀到,因為node.js異步性質,一旦完成執行,使用回調函數獲取所需數據會更好。

現在我無法檢索getUserBranch返回的值,我不知道如何做到這一點,回調函數有值,但我如何從那里獲取值?

file2.js

var getUserBranch = function(email,callback) {


client.execute('SELECT * from branch WHERE email=?', [ email ], function(
        err, data, fields) {
    if (err)

        console.log("error");
    else
        console.log('The solution is in branch: \n', data);
    res = data.rows[0];
    return callback(res);
});

}

file1.js

var getOffers = function (email) {

   var branchObj = require('./file2.js');
   var branchList = branchObj.getUserBranch(email,getList));
   return branchList;
};

var getList = function(res){
  var results=res;
  return results;
}

在異步調用中使用堆棧中的回調函數。 看看這個:

var getUserBranch = function(email,callback) {
    client.execute('SELECT * from branch WHERE email=?', [ email ], function(err, data, fields) {
        if (err)
            console.log("error");
        else{
            console.log('The solution is in branch: \n', data);
            /* This data stack 3  */
            callback(data.rows[0];);
        }
    });
};

var getOffers = function (email, callback) {
    var branchObj = require('./file2.js');
    branchObj.getUserBranch(email, function(data){
        /* This data stack 2  */
        callback(data);
    });
};

function anyFunction(){
    getOffers("xx@xxx.com", function(data){
        /* This data stack 1  */
        console.log(data);
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM