เมื่อมีการตกลงตามสัญญา กล่าวคือ สำเร็จหรือถูกปฏิเสธ ฟังก์ชันเรียกกลับที่ระบุในเมธอดสุดท้ายจะถูกเรียกใช้ ในที่สุดเมธอด () จะคืนค่า Promise ด้วย
นี่เป็นวิธีในการรันโค้ดไม่ว่าสัญญาจะสำเร็จหรือถูกปฏิเสธเมื่อสัญญาได้รับการจัดการแล้ว เรามาดูตัวอย่างกัน
ตัวอย่าง
new Promise( (resolve) => setTimeout(resolve("success"), 1000) ).then(val => console.log(val)).finally(() => console.log("Promise complete!"))
ผลลัพธ์
success Promise complete!
ตอนนี้ให้เราดูว่าจะเกิดอะไรขึ้นหากสัญญาล้มเหลว -
ตัวอย่าง
// No method get on undefined. This will throw an error new Promise(() => undefined.get()) .then(val => console.log(val)) .catch(err => console.log("Failed!")) .finally(() => console.log("Promise complete!"))
ผลลัพธ์
Failed! Promise complete!
สังเกตในทั้งสองกรณีไม่ว่าจะล้มเหลวหรือสำเร็จ คำสัญญาจะดำเนินการตามคำสั่งสุดท้าย