วัตถุข้อผิดพลาดใน Promise ของ JavaScript
เป็นที่ยอมรับมากกว่าที่จะส่งผ่าน
ไม่ใช่สตริงข้อผิดพลาด แต่เป็นวัตถุข้อผิดพลาด
ไปยังฟังก์ชัน reject:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
reject(new Error('ข้อผิดพลาดใน promise')); // วัตถุข้อผิดพลาด
}, 3000);
});
นอกจากนี้ยังสามารถ throw วัตถุข้อผิดพลาดได้
โดยใช้ throw - ซึ่งจะเทียบเท่ากับ
การส่งผ่านพวกมันไปยัง reject:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
throw new Error('ข้อผิดพลาดใน promise'); // เทียบเท่ากับ reject
}, 3000);
});
แก้ไขโค้ดต่อไปนี้ให้สอดคล้อง กับที่ได้เรียนรู้:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false;
if (!isError) {
resolve('สำเร็จ');
} else {
reject('ข้อผิดพลาด');
}
}, 3000);
});