So I am having this method of my Car class and I wanted to return the mesh, but it returns as undefined. The problem is that even if I try to show it on console after I get out of carLoader is unndefined too, if I invoke console.log in carLoader.load(..) it's ok . The question is how can I store it so I can use it?
this.loadCarToScene = function ( carsVector,carName ) {
    var carLoader = new THREE.BinaryLoader();
    var mesh;
    carLoader.load( carsVector[Object.keys(carsVector)[0]].url, function( geometry ) { 
        geometry.sortFacesByMaterialIndex();
        console.log("url--->"+carsVector[Object.keys(carsVector)[0]].url);
        var m = [],
        s = carsVector[ Object.keys(carsVector)[0] ].scale * 1,
        p = carsVector[ Object.keys(carsVector)[0] ].position,
        r =carsVector[ Object.keys(carsVector)[0] ].init_rotation;
        for ( var i in carsVector[ Object.keys(carsVector)[0] ].mmap ) {
            m[ i ] = carsVector[ Object.keys(carsVector)[0] ].mmap[ i ];
        }
        mesh = new THREE.Mesh( geometry, m );
        mesh.rotation.x = r[ 0 ];
        mesh.rotation.y = r[ 1 ];
        mesh.rotation.z = r[ 2 ];
        mesh.scale.x = mesh.scale.y = mesh.scale.z = s;
        mesh.position.set( p[0], p[1], p[2]);
        scene.add(mesh);
        return mesh;        
    });
    console.log("mesh---->" + mesh );
}
