el siguiente ejemplo es un esquema bien similar a lo que tienes: una función principal, una variable local, y la invocación a una función externa al que se le pasa como argumento un callback. al final de la función principal, un console.log para mostrar el valor de la variable.
Código:
function main(){
var outter = null;
caller(function(outter){ outter = outter; });
console.log(outter);
}
function caller(callback){ callback("caller"); }
main();
en contraste, fíjate la sútil diferencia de este otro fragmento. el nombre del argumento es distinto a la variable local.
Código:
function main(){
var outter = null;
caller(function(__outter__){ outter = __outter__; });
console.log(outter);
}
function caller(callback){ callback("caller"); }
main();