ในบางกรณีเมื่อฉันได้รับค่าส่งคืนจากวัตถุสัญญาฉันต้องเริ่มต้นพรีเซสสองรายการที่แตกต่างกัน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
จะใช้ได้
แล้วแนวทางปฏิบัติที่ดีที่สุดในการจัดการคืออะไร?