Three.TextureLoader no está cargando archivos de imágenes

Así que he estado jugando con THREE y Node por un tiempo, y hasta ahora, he estado cargando texturas usando la clase TextureLoader de la siguiente manera:

var loader = new THREE.TextureLoader;
loader.crossOrigin = '';

function createSphere ( radius , segments , rings ) {

  var geometry = new THREE.SphereGeometry(radius , segments , rings);

  var material = new THREE.MeshPhongMaterial({

        map: loader.load('./images/...'),
        bumpMap: loader.load('./images/...'),
        ect...

  });

  return new THREE.Mesh ( geometry, material )
}

Estaba funcionando bien, y luego decidí que, en lugar de cargar las texturas cuando creé el material, me gustaría precargar todas mis texturas, así que hice una pequeña utilidad para hacer eso:

var loader = new THREE.TextureLoader;
loader.crossOrigin = '';

var textureMap = {

earthTex : {file : 'earth_no_ice_clouds.jpg', message : 'Loading Global Land Masses'},
earthBumpTex : {file : 'earth_bump.jpg', message : 'Loading Global Depth'},
earthSpecTex : {file : 'earth_specular.png', message : 'Loading Water'},
earthCloudTex : {file : 'earth_clouds.png', message : 'Loading Clouds'},
earthCultureTex : {file : 'earth_cultural.png', message :'Loading Country Borders'},
earthLookUpTex : {file : 'earth_lookup.jpg', message :'Loading Country Projections'},
moonTex : {file : 'moon.jpg', message :'Loading Lunar Surface'},
moonBumpTex : {file : 'moon_bump.jpg', message : 'Loading Lunar Depth'},
skyDomeTex : {file : 'galaxy_3.png', message : 'Loading Galaxy'}

};

Object.size = function(obj) {
    var size = 0, key;
    for (key in obj) {
        if (obj.hasOwnProperty(key)) size++;
    }
    return size;
}

function loadTextures(  ) {

    var path = "./images/";
    var size = Object.size(textureMap);
    var count = 0;

    for(var key in textureMap) {
        var textureItem = textureMap[key];
        var texture = loader.load(path + textureItem.file);
        console.log(texture);
    }
}

loadTextures();

Cada vez que ejecuto esto en mi navegador (Chrome) con las herramientas de desarrollador abiertas, el objeto THREE.texture que termina siendo registrado tiene su propiedad de imagen establecida en 'undefined' y su propiedad src establecida en "". No entiendo por qué sucede esto, y no he cambiado ninguna de las rutas de mis archivos .png o .jpg ni la ubicación del archivo en el que estoy usando mi TextureLoader.

Cuando intento ejecutar el primer fragmento de código en la parte superior, también se produce el error y ahora parece que no puedo cargar ninguna textura en mi aplicación.

Cualquier ayuda para entender por qué esto ha sucedido de repente sería muy apreciada.

EDITAR

Edité el primer bloque de código en un intento de aclarar mi problema. No estaba usando promesas o devoluciones de llamadas ni nada por el estilo antes. Estaba llamando a mi función 'createSphere' y funciones similares desde la función de inicialización de mi escena. Solía funcionar bien, y no tuve problemas para cargar texturas.

Ahora, usando la misma estructura de programa de antes, el primer bloque de código no funciona.

Respuestas a la pregunta(1)

Su respuesta a la pregunta