Dalam beberapa kasus, ketika saya mendapatkan nilai hasil dari objek promise, saya perlu memulai dua then()presesi berbeda bergantung pada kondisi nilai, seperti:
promise().then(function(value){
if(//true) {
// do something
} else {
// do something
}
})
Saya berpikir mungkin saya bisa menulisnya seperti:
promise().then(function(value){
if(//true) {
// call a new function which will return a new promise object
ifTruePromise().then();
} else {
ifFalsePromise().then();
}
})
tapi dengan ini, saya punya dua pertanyaan:
Saya tidak yakin apakah itu ide yang baik untuk memulai janji baru-kemudian memproses dalam janji;
bagaimana jika saya membutuhkan dua proses untuk memanggil satu fungsi pada akhirnya? Artinya mereka memiliki "terminal" yang sama
Saya mencoba mengembalikan janji baru untuk menjaga rantai asli seperti:
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);
tetapi dalam kasus ini, apakah itu benar atau salah, yang berikutnya thenakan berhasil.
JADI, apa praktik terbaik untuk mengatasinya?