W niektórych przypadkach, gdy otrzymam wartość zwracaną z obiektu obietnicy, muszę rozpocząć dwie różne then()
procedury zależne od stanu wartości, na przykład:
promise().then(function(value){
if(//true) {
// do something
} else {
// do something
}
})
Myślę, że może mógłbym to napisać tak:
promise().then(function(value){
if(//true) {
// call a new function which will return a new promise object
ifTruePromise().then();
} else {
ifFalsePromise().then();
}
})
ale w związku z tym mam dwa pytania:
Nie jestem pewien, czy to dobry pomysł, aby rozpocząć nową obietnicę, a następnie przetworzyć obietnicę;
co, jeśli potrzebuję dwóch procesów, aby wywołać jedną funkcję w ostatniej? Oznacza to, że mają ten sam „terminal”
Próbowałem zwrócić nową obietnicę zachowania oryginalnego łańcucha, jak:
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);
ale w tym przypadku, czy to prawda, czy fałsz, następny then
zadziała.
Więc jaka jest najlepsza praktyka, aby sobie z tym poradzić?