Правильный способ пропустить функцию 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);
});