การจัดการสถานการณ์ผิดปกติในพรอมิสใน JavaScript
ตอนนี้เรามาเรียนรู้วิธีการจัดการสถานการณ์ผิดปกติ ที่เกิดขึ้นภายในพรอมิสกัน ในกรณีที่เกิดสถานการณ์ดังกล่าว เราต้องปฏิเสธพรอมิสโดยใช้ฟังก์ชันการปฏิเสธพิเศษ ซึ่งจะถูกส่งเข้าไปในพารามิเตอร์ที่สอง ของฟังก์ชันพรอมิสโดยอัตโนมัติ:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
...
}, 3000);
});
ภายในฟังก์ชันพรอมิส เราควรเรียกใช้
resolve หากทุกอย่างดำเนินไปตามปกติ หรือเรียกใช้
reject หากเกิดสถานการณ์ผิดปกติ:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false;
if (!isError) {
resolve([1, 2, 3, 4, 5]); // ข้อมูลของพรอมิส
} else {
reject('error in promise'); // ข้อความแสดงข้อผิดพลาดของคุณ
}
}, 3000);
});
จากนั้นในเมธอด then คุณต้องส่งผ่าน
ฟังก์ชันไม่ใช่หนึ่ง แต่สองฟังก์ชันเป็นพารามิเตอร์: ฟังก์ชันแรกจะทำงาน
หากพรอมิสทำงานตามปกติ (ได้รับการแก้ไข)
และฟังก์ชันที่สอง - หากทำงานด้วยข้อผิดพลาด (ถูกปฏิเสธ):
promise.then(
function(result) {
console.log(result); // แสดงผลลัพธ์ของพรอมิส
},
function(error) {
console.log(error); // แสดงข้อความแสดงข้อผิดพลาด
}
);
ตามปกติแล้ว รหัสข้างต้นมักจะเขียน ให้กระชับมากขึ้น แบบนี้:
promise.then(function(result) {
console.log(result); // แสดงผลลัพธ์ของพรอมิส
}, function(error) {
console.log(error); // แสดงข้อความแสดงข้อผิดพลาด
});
สร้างโค้ดแบบอะซิงโครนัสที่จะสร้าง
ตัวเลขสุ่มตั้งแต่ 0 ถึง 5
ห่อหุ้มทั้งหมดนี้ในพรอมิส ให้พรอมิสส่งคืนผลลัพธ์
ของการหารหนึ่งด้วยตัวเลขที่สุ่มได้
ให้พรอมิสดำเนินการเสร็จสิ้นด้วยข้อผิดพลาด
หากเกิดการหารด้วยศูนย์ และสำเร็จ
ในกรณีอื่นๆ ทั้งหมด