nodejs return from callbacks

guys. I cant resolve some prolem with js callback return. So, we have next func:

     //Функция получения контакт листа пользователя
        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;
        }

I need return variable row from 2-lvl callback, but if i create global var or write "row" in global object, it's not working. Help me pls! Thank you!

I believe you didn't get the concept of async code right. Because you example is way to long, here some pseudo code that shows you in which order async code will work.

// Timestamp: 0
function foo(input, cb) {
    // Timestamp: 2
    doSomeThingAsync(input, (result) {
        // Timestamp: 5
        result = transformResultSync(result);
        cb(result);
    });
    // Timestamp: 3
}
// Timestamp: 1
foo('bar', function(result) {
    // Timestamp: 6
    console.log(result);
});
// Timestamp: 4

I hope it helps a little bit.