Programowo tworzenie łańcuchowej sekwencji obietnic jQuery

Mam funkcję usuwania listy tablic plików, filePaths, przez wywołanie pojedynczego deleteFile (filePath) na każdym z plików na liście (niektóre używane APIS nie obsługują zbiorczego usuwania). Funkcja deleteFile zwraca obietnicę jQuery i rozwiązuje / odrzuca po usunięciu pliku.

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);
    });

Otrzymuję wywołania .reject na niektórych plikach na liście (i wiem, że istnieją), więc myślę, że być może będę musiał zmienić tablicę filePaths na łańcuch połączeń, jak kolejka (b / c to nie to, co robi $. kiedy to robi? wydaje się, że uruchamia je wszystkie naraz). Wiem, jak to zrobić (np. .DeleteFile (path1) .deletePath (path2). Etc, gdy są w takiej tablicy.

Każda pomoc jest doceniana z góry.

questionAnswers(2)

yourAnswerToTheQuestion