Forma correcta de omitir una función de entonces en Q Promises

En mi código, basado en una condición específica, me gustaría saltar aldone función, independientemente de todas lasthen funciones

La versión original de esta pregunta está en las ediciones. El siguiente es el problema real con el que estoy lidiando. Lo siento por los inconvenientes ocasionados

Problema real:

Estoy leyendo un archivo y procesándolo. Si el contenido del archivo coincide con ciertas condiciones, tengo que hacer una serie de operaciones en el sistema de archivos (digamos leer y escribir pocos archivos) y luego ejecutardone función. Si las condiciones fallan,Tengo que omitir todas las series de operaciones y tengo que ejecutar eldone funcionar directamente.

Devuelvo un objeto (digamosresult) en todo elthen funciones y en el próximothen Actualizoresult y devuélvelo. Entonces, cuando todo elthen están hechos,done tendrá el acumuladoresult. Finalmente, eldone procesaráresult e imprimirlo.

Entonces, si las condiciones no se cumplen inicialmente,done simplemente imprimiráresult (que estaría vacío)

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

Respuestas a la pregunta(4)

Su respuesta a la pregunta