EXERCISE 3 : Promise

3.1 ให้นักศึกษาแก้ Function getDogDemo()
เมื่อกดปุ่ม Run ให้นับเวลาถอยหลัง 10 วินาที จากนั้นแสดงรูปที่สุ่มได้จาก API https://dog.ceo/api/breeds/image/random


หมายเหตุ: เรียกใช้ API ด้วยฟังก์ชัน getAPI() เท่านั้น



3.2 ให้แก้ไข Function Rainbow()
เมื่อกดปุ่ม Run ตัวอักษรใน div id="rainbow" จะเปลี่ยนสี ทีละ 2 วินาที จนถึงสีสุดท้าย



3.3 ให้นักศึกษาทดลองปรับปรุงFunction evenNumber(num) เพื่อตรวจสอบตัวเลขที่กรอกเข้ามานั้นเป็น เลขคู่หรือไม่


  • ในกรณีตัวเลขที่กรอกมานั้นเป็นเลขคู่โปรแกรมจะทำงานสำเร็จ ให้แสดงผล ดังนี้ "success : [ตัวเลขที่รับเข้ามา] is an even number"
  • ในกรณีตัวเลขที่กรอกมานั้นไม่ใช่เลขคู่โปรแกรมจะทำงานไม่สำเร็จ ให้แสดงผล ดังนี้ "Error : [ตัวเลขที่รับเข้ามา] is not an even number"

  • หมายเหตุ 1 : ต้องมีการใช้งาน Promise


    3.4 นักศึกษาได้รับมอบหมายให้สร้างโปรแกรมเอาไว้สำหรับทดสอบ delay ของระบบ โดยให้แก้ไข Function task(id) และ Function tester()


  • ในส่วนของ Function task(id) ให้ return Promise ที่ทำการตรวจสอบค่า delay ที่ได้จากการ Random ของแต่ละ task โดยมีเงื่อนไขดังนี้
         1. ถ้า task นั้นๆ มีค่า delay ที่น้อยกว่า 500ms จะมี format ในการแสดงผลดังนี้ : "task [id]: [ค่า delay]ms ... PASS!"
         2. ถ้า task นั้นๆ มีค่า delay ที่มากกว่า 500ms จะมี format ในการแสดงผลดังนี้ : "task [id]: [ค่า delay]ms ... NOTPASS!"
  • เมื่อกด Run จะเรียกใช้งาน Function tester() เพื่อแสดงผลลัพธ์การทดสอบ task ทั้งหมด 4 task ผ่าน console

  • หมายเหตุ 1 : ต้องมีการใช้งาน Promise

    หมายเหตุ 2 : ลำดับของการแสดงผล ขึ้นอยู่กับค่า delay ของ task นั้นๆ (hint: setTimeout())


    ตัวอย่างของการแสดงผล

     

    3.5 ให้นักศึกษาทำระบบยันยันตัวตน โดยมีขั้นตอนดังนี้


  • ทำการแก้ไขฟังก์ชัน checkAuth() โดยให้กรอกรหัสผ่าน (กำหนดรหัสผ่านเป็น : Cisco) เพื่อยืนยันตัวตน​
  • กรณีที่ผ่านให้เข้าถึง Function fetchData() ให้ alert() แจ้งเตือนว่า "รหัสผ่านถูกต้อง" แล้วแสดงภาพดังตัวอย่าง
  • กรณีที่ไม่ผ่าน ให้ alert() แจ้งเตือนว่า "รหัสผ่านไม่ถูกต้อง กรุณาลองอีกครั้ง"

  • หมายเหตุ 1 : ต้องมีการใช้งาน Promise

    หมายเหตุ 2 : ในตัว alert() ต้องมีการใช้ค่าที่ส่งมากจาก resolve และ reject

    หมายเหตุ 3 : ใช้ฟังก์ชั่น getAPI ในการดึงรูปภาพจาก api มาแสดง

    หมายเหตุ 4 : ให้ใช้ API นี้ในการดึงข้อมูลมาแสดงผล https://api.thecatapi.com/v1/images/search


    ตัวอย่างของการแสดงผล