เมื่อมีการตกลงตามสัญญา กล่าวคือ สำเร็จหรือถูกปฏิเสธ ฟังก์ชันเรียกกลับที่ระบุในเมธอดสุดท้ายจะถูกเรียกใช้ ในที่สุดเมธอด () จะคืนค่า 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!
สังเกตในทั้งสองกรณีไม่ว่าจะล้มเหลวหรือสำเร็จ คำสัญญาจะดำเนินการตามคำสั่งสุดท้าย