I have a function inside of which there is a nested callback function structure. I want that first "mother" function to return a certain value, after it's been calculated in the callback functions sequence. However. it doesn't really work. Here's a simplified version of the code, do you think you could help?
console.log(finalResult());
function finalResult() {    
var finalanswer = firstFunction(secondFunction);
function firstFunction (callback) {
    var notion = 1;
    callback(null, notion);
}
function secondFunction (err, notion) {
    if (err) console.log(err);
    var answer = notion + 1
    return answer;
}
return finalanswer;  
}  
Thank you!
**UPDATE - THE ORIGINAL CODE**
 return getContexts(makeQuery);
 function getContexts (callback) {
    dbneo.cypherQuery(context_query, function(err, cypherAnswer){
        if(err) {
            err.type = 'neo4j';
            return callback(err);
        }
        // No error? Pass the contexts to makeQuery function
        return callback(null,cypherAnswer);
    });
}
function makeQuery (err,answer) {
    // Error? Display it.
    if (err) console.log(err);
    // Define where we store the new contexts
    var newcontexts = [];
    // This is an array to check if there are any contexts that were not in DB
    var check = [];
    // Go through all the contexts we received from DB and create the newcontexts variable from them
    for (var i=0;i<answer.data.length;i++) {
        newcontexts.push({
            uid: answer.data[i].uid,
            name: answer.data[i].name
        });
        check.push(answer.data[i].name);
    }
    // Now let's check if there are any contexts that were not in the DB, we add them with a unique ID
    contexts.forEach(function(element){
        if (check.indexOf(element) < 0) {
            newcontexts.push({
                uid: uuid.v1(),
                name: element
            });
        }
    });
    return newcontexts;
}
 
    