Trong một số trường hợp, khi tôi nhận được giá trị trả về từ một đối tượng lời hứa, tôi cần bắt đầu hai quy trình khác nhau then()
tùy thuộc vào điều kiện của giá trị, như:
promise().then(function(value){
if(//true) {
// do something
} else {
// do something
}
})
Tôi nghĩ có lẽ tôi có thể viết nó như sau:
promise().then(function(value){
if(//true) {
// call a new function which will return a new promise object
ifTruePromise().then();
} else {
ifFalsePromise().then();
}
})
nhưng với điều này, tôi có hai câu hỏi:
Tôi không chắc liệu có nên bắt đầu một lời hứa mới không - sau đó xử lý một lời hứa;
Điều gì sẽ xảy ra nếu tôi cần hai quá trình để gọi một hàm cuối cùng? Nó có nghĩa là họ có cùng một "thiết bị đầu cuối"
Tôi đã cố gắng trả lại lời hứa mới để giữ chuỗi ban đầu như:
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);
nhưng trong trường hợp này, cho dù đúng hay sai, cách tiếp theo then
sẽ hoạt động.
VẬY, cách tốt nhất để xử lý nó là gì?