การดักจับข้อผิดพลาดแยกต่างหากใน Promise ใน JavaScript
ใน then สามารถระบุเฉพาะฟังก์ชันตัวจัดการ
สถานการณ์พิเศษได้ โดยส่ง null แทนพารามิเตอร์แรก:
promise.then(
null,
function(error) {
console.log(error);
}
);
ในกรณีเช่นนี้ สะดวกที่จะใช้ไวยากรณ์แบบย่อ
ผ่านเมธอด catch:
promise.catch(
function(error) {
console.log(error);
}
);
เขียนโค้ดต่อไปนี้ใหม่โดยใช้เมธอด catch:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false;
if (!isError) {
resolve('success');
} else {
reject(new Error('error'));
}
}, 3000);
});
promise.then(
res => console.log(res),
err => console.log(err.message),
);