我的Node.js這樣的代碼的:的Node.js - 獲取數據了一個回調函數
var data = "";
//redis client
client.get(key,function(err,value){
data += value;
});
//output
console.log(data);
,但不打印輸出。爲什麼這樣?以及如何從回調函數中獲取數據?
非常感謝。
我的Node.js這樣的代碼的:的Node.js - 獲取數據了一個回調函數
var data = "";
//redis client
client.get(key,function(err,value){
data += value;
});
//output
console.log(data);
,但不打印輸出。爲什麼這樣?以及如何從回調函數中獲取數據?
非常感謝。
您傳遞給redis客戶端的回調函數稍後會被調用(當數據通過網絡返回時),但是在進行redis調用之後,您嘗試在redis向您發送值之前打印該值。你需要等待redis返回一個值。
試試這個
var data = "";
//redis client
client.get(key,function(err,value){
data += value;
//output
console.log(data);
});
謝謝。得到它了。 – jackie
你的Redis結合的client.get
功能是異步的。
它完成查詢redis服務器後會調用回調函數。你應該在回調中打印輸出。
var data = "";
//redis client
client.get(key,function(err,value){
data += value;
//output
console.log(data);
});
看看我的答案的第一部分:http://stackoverflow.com/a/14220323/218196。它試圖解釋同步和異步代碼之間的差異。 –
這篇文章也可能幫助:: http://stackoverflow.com/questions/14110798/cannot-get-valid-list-while-using-redis-with-node-js –