У меня есть функция, которая имеет следующий формат:
this.callPromiseFunction1(params)
.then(results1 => {
if (results1.length > 2) {
this.callPromiseFunction2(params)
.then(results2 => {
return results2.stuff;
}).catch(reject);
} else {
return results1.stuff;
}
})
.then(results3 => {
this.callPromiseFunction3(someotherparams)
//do stuff
}).catch(reject)
Моя проблема заключается в том, что если я введу условное выражение и вызову обещание в первом операторе then()
, у меня возникнет проблема синхронизации и результаты3не определеноResults3 определяется, если я введу оператор else
первого оператора then()
.
Как мне исправить эту проблему синхронизации и разрешить вложенные операторы и обещания then()
, не переписывая мои обещания полностью и не заставляя ихработать вместе?Есть ли способ принудительно выполнить обещание в тогдашнем утверждении, прежде чем перейти к следующему then()
?