-1
返回傢伙。我不能用js回調返回來解決一些問題。 因此,我們有下一個FUNC:nodejs從回調
//Функция получения контакт листа пользователя
function get_contact_list(data) {
//Берем ID пользователя, который к нам пытается обратиться исходя из SESSION_ID
conn.query('SELECT id FROM users WHERE session_id="' + data['auth'] + '" LIMIT 1;', function(err, res) {
if (err) {
console.log(err);
}
//Разбираем результат
res.fetchAll(function(err, row) {
if (err) {
console.log(err);
}
//А теперь, собсна, выбираем контакты
conn.query('SELECT u.id, u.sname, u.fname, u.nick FROM users as u LEFT JOIN contacts AS c ON c.dep_id = u.id WHERE owner_id =' + row[0].id + ';', function(err, res) {
if (err) {
console.log(err);
}
//Разбираем результат
res.fetchAll(function(err, row) {
if (err) {
console.log(err);
}
//TAKE row HEREOF
NEED_OUT = row;
});
});
});
});
return NEED_OUT;
}
我需要2 - 拉特回調返回變量行,但如果我創建全局變量或寫入全局對象「行」,它不工作。幫幫我吧!謝謝!
雖然它是不同的上下文,但您應該在這裏閱讀我的答案,以瞭解同步和異步代碼:http://stackoverflow.com/a/14220323/218196。您必須讓'get_contact_list'接受回調並傳遞數據庫查詢的結果。 – 2013-04-27 13:03:23
我認爲承諾會有助於這段代碼的可讀性。 – 2013-04-27 13:05:38
請確定您想要保存的行對象的位置。您始終可以將回調函數作爲參數傳遞,並通過將行值作爲參數傳遞給它來調用它 – Tushar 2013-04-27 13:09:48