Необходимо написать код, который в зависимости от условия формирует тот или иной sql-запрос, а затем выполняет его.
Пробовал несколько вариантов, но получить желаемый результат не удалось - сочетание dever.resolve и Q.all работает не так, как мне нужно.
В этом варианте node.js выполняет deferrer.resolve раньше, чем Q.all, т.е на момент deferrer.resolve данных еще нет.
deferred = Q.defer()
if условие
сформировать_sql_запрос
deferred.resolve
else
получить_дополнительные_данные
Q.all(выполнить_sql_запросы_по_дополнительным_данным).then =>
сформировать_sql_запрос
deferred.resolve
deferred.promise.then =>
выполнить_sql_запрос
В этом варианте node.js выполняет deferrer.resolve по завершению выполнения Q,all, но перед выполнением .then у Q.all.
deferred = Q.defer()
if условие
сформировать_sql_запрос
deferred.resolve
else
получить_дополнительные_данные
deferred.resolve Q.all(выполнить_sql_запросы_по_дополнительным_данным).then =>
сформировать_sql_запрос
deferred.promise.then =>
выполнить_sql_запрос