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