Maneira correta de pular uma função then no Q Promises

No meu código, com base em uma condição específica, eu gostaria de pular para odone função, independentemente de todas asthen funções.

A versão original desta pergunta está nas edições. O seguinte é o problema real com o qual estou lidando. Desculpe pela inconveniência

Problema real:

Estou lendo um arquivo e processando-o. Se o conteúdo do arquivo corresponder a determinadas condições, eu tenho que executar uma série de operações no sistema de arquivos (por exemplo, ler e gravar alguns arquivos) e depois executardone função. Se as condições falharem,Eu tenho que pular todas as séries de operações e tenho que executar odone função diretamente.

Eu retorno um objeto (digamosresult) em todos osthen funções e na próximathen Eu atualizoresult e devolva. Então, quando todo othen está feito,done terá o acumuladoresult. finalmente, odone processaráresult e imprima.

Portanto, se as condições não forem atendidas inicialmente,done simplesmente imprimiráresult (que estaria vazio).

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

questionAnswers(4)

yourAnswerToTheQuestion