У деяких випадках, коли я отримую повертане значення від об'єкта-обіцянки, мені потрібно запустити дві різні then()
прецесії, які залежать від стану значення, наприклад:
promise().then(function(value){
if(//true) {
// do something
} else {
// do something
}
})
Думаю, можливо, я можу написати це так:
promise().then(function(value){
if(//true) {
// call a new function which will return a new promise object
ifTruePromise().then();
} else {
ifFalsePromise().then();
}
})
але з цим у мене є два запитання:
Я не впевнений, чи це гарна ідея розпочати нову обіцянку - тоді процес обіцяти;
що, якщо мені потрібно, щоб два процеси викликали одну функцію в останній? Це означає, що вони мають однаковий "термінал"
Я намагався повернути нову обіцянку зберегти оригінальний ланцюжок, як:
promise().then(function(value){
if(//true) {
// call a new function which will return a new promise object
// and return it
return ifTruePromise();
} else {
// do something, no new promise
// hope to stop the then chain
}
}).then(// I can handle the result of ifTruePromise here now);
але в цьому випадку, незалежно від того, правда це чи неправда, наступний then
спрацює.
Отже, яка найкраща практика з нею?