2013-05-10 56 views
1

我想檢索的變量「用戶」之外的功能:檢索的NodeJS一個變量

var users; 

    client.lrange("comptes", 0, -1, function(err, replies) { 

    replies.forEach(function(reply, i) { 
     users = JSON.parse(reply.toString()); 
    }); 
}); 

// here to retrieve the "users" variable 
console.log(users); // = undefined 

function findById(id, fn) { 
    var idx = id - 1; 
    if (users[idx]) { 
    fn(null, users[idx]); 
    } else { 
    fn(new Error('User ' + id + ' does not exist')); 
    } 
} 

function findByUsername(username, fn) { 
    for (var i = 0, len = users.length; i < len; i++) { 
    var user = users[i]; 
    if (user.username === username) { 
     return fn(null, user); 
    } 
    } 
    return fn(null, null); 
} 

我用Qasync模塊,但我不知道該怎麼做..

謝謝你的幫助 。

回答

0

該變量在您使用的範圍內,這意味着如果您從未給出它的值(如果您不計算回調,則不會計算該值),它只能是未定義的。嘗試使用行var users = "damn not yet";,這可能是你會在控制檯中得到的。這意味着您的回調函數lrange要麼未被調用,要麼邏輯錯誤。

+0

它的確定:'函數findByUsername(用戶名,FN){ client.lrange( 「審計院」,0,-1,函數(ERR,回覆){ replies.forEach(功能(答覆,我){ users = JSON.parse(reply.toString()); Tusers(users); }); }); 函數對於(var i = 0,len = users.length; i PixelPixel 2013-05-11 16:21:30

0

這樣的事情?

getcomptes = function(callback){ 
    client.lrange('comptes', 0, -1, function(err, users){ 
      callback(err, users); 
    }); 
};