Правильный способ пропустить функцию then в Q Promises

В моем коде, основанном на определенном условии, я хотел бы перейти кdone функция, независимо от всехthen функции.

Оригинальная версия этого вопроса находится в редакции. Ниже приводится актуальная проблема, с которой я имею дело. Приносим извинения за неудобства

Актуальная проблема:

Я читаю файл и обрабатываю его. Если содержимое файла соответствует определенным условиям, я должен выполнить ряд операций в файловой системе (скажем, прочитать и записать несколько файлов), а затем выполнитьdone функция. Если условия не выполняются,Я должен пропустить все серии операций, и я должен выполнитьdone функционировать напрямую.

Я возвращаю объект (скажем,result) во всехthen функции и в следующемthen Я обновляюresult и верни это. Итак, когда всеthen сделано,done будет иметь накопленныйresult, Наконец,done будет обрабатыватьresult и распечатай.

Итак, если условия не выполняются изначально,done просто распечатаетresult (который будет пустым).

Q()
.then(readFile)
.then(function (contents) {
    var processResult = process the contents;
    if (processResult) {
        return {};
    } else {
        // How can I skip to `done` from here
    }
})
.then(function (results) {
    // do some more processing and update results
    return results;
})
...   // Few more then functions similar to the one above
...
.fail(function (exception) {
    console.error(exception.stack);
})
.done(function (results) {
   // do some more processing and update results
   console.log(results);
});

Ответы на вопрос(4)

Ваш ответ на вопрос