การจัดการสถานการณ์ผิดปกติในพรอมิสใน JavaScript

ตอนนี้เรามาเรียนรู้วิธีการจัดการสถานการณ์ผิดปกติ ที่เกิดขึ้นภายในพรอมิสกัน ในกรณีที่เกิดสถานการณ์ดังกล่าว เราต้องปฏิเสธพรอมิสโดยใช้ฟังก์ชันการปฏิเสธพิเศษ ซึ่งจะถูกส่งเข้าไปในพารามิเตอร์ที่สอง ของฟังก์ชันพรอมิสโดยอัตโนมัติ:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    ...
  }, 3000);
});

ภายในฟังก์ชันพรอมิส เราควรเรียกใช้ resolve หากทุกอย่างดำเนินไปตามปกติ หรือเรียกใช้ reject หากเกิดสถานการณ์ผิดปกติ:

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

javascriptpromise.then(
  function(result) {
    console.log(result); // แสดงผลลัพธ์ของพรอมิส
  },
  function(error) {
    console.log(error);  // แสดงข้อความแสดงข้อผิดพลาด
  }
);

ตามปกติแล้ว รหัสข้างต้นมักจะเขียน ให้กระชับมากขึ้น แบบนี้:

javascriptpromise.then(function(result) {
  console.log(result); // แสดงผลลัพธ์ของพรอมิส
}, function(error) {
  console.log(error);  // แสดงข้อความแสดงข้อผิดพลาด
});
Задание 1

สร้างโค้ดแบบอะซิงโครนัสที่จะสร้าง ตัวเลขสุ่มตั้งแต่ 0 ถึง 5 ห่อหุ้มทั้งหมดนี้ในพรอมิส ให้พรอมิสส่งคืนผลลัพธ์ ของการหารหนึ่งด้วยตัวเลขที่สุ่มได้ ให้พรอมิสดำเนินการเสร็จสิ้นด้วยข้อผิดพลาด หากเกิดการหารด้วยศูนย์ และสำเร็จ ในกรณีอื่นๆ ทั้งหมด