Creación programática de una secuencia encadenada de promesas jQuery.

Tengo una función para eliminar una lista, una matriz de archivos, filePaths, llamando a un solo deleteFile (filePath) en cada uno de los archivos en una lista (algunos APIS que estoy usando no son compatibles con la eliminación masiva). La función deleteFile devuelve una promesa jQuery y se resuelve / rechaza al eliminar el archivo.

function deleteFiles(filePaths)
    var deferreds = $.map(fileKeys, function (val, index) {
        return deleteFile(filePath);
    });

    $.when.apply($, deferreds).then(function (schemas) {
        console.log("DONE", this, schemas);
        deferred.resolve();
    }, function (error) {
        console.log("My ajax failed");
        deferred.reject(error);
    });

Estoy recibiendo llamadas .reject en algunos de los archivos de la lista (y sé que existen), por lo que estoy pensando que podría necesitar convertir la matriz de filePaths en un encadenamiento de llamadas, como una cola (b / c esto no es lo que $ .cuando hace, ¿verdad? parece que los lanza todos a la vez). Tengo idea de cómo hacer esto (como .deleteFile (path1) .deletePath (path2). Etc, cuando están en una matriz como esta.

Cualquier ayuda es apreciada de antemano.

Respuestas a la pregunta(2)

Su respuesta a la pregunta