คุณกำลังดิ้นรนเพื่อเรียนรู้แนวคิดของคำสัญญา JavaScript หรือไม่? บทความนี้จะอธิบายวิธีการสร้างสัญญาทำไมเราถึงใช้สัญญาใน JavaScript และอีกมากมาย
ภาพรวม
เราหวังว่าคุณจะมีความเข้าใจที่ดีขึ้นเกี่ยวกับ ประเภทข้อมูล JavaScript ตอนนี้นี่เป็นบล็อกโพสต์อื่นในหมวดหมู่ การเขียนโปรแกรม ในการสอน JavaScript นี้เราจะผ่าน สิ่งที่สัญญาใน JavaScript และพร้อมกับสิ่งนั้นเราจะเห็นว่าการดำเนินงานแบบอะซิงโครนัสคืออะไรการใช้สัญญาและวิธีการสร้างสัญญาใน JavaScript ขั้นแรกกระบวนการ/การดำเนินงานแบบอะซิงโครนัสเป็นกระบวนการที่ดำเนินการอย่างอิสระเกี่ยวกับกระบวนการอื่น ๆ และไม่ได้สร้างการอุดตันใด ๆ ดังนั้นคุณต้องจัดการการดำเนินการแบบอะซิงโครนัสมิฉะนั้นอาจสร้างความผิดปกติในรหัส JavaScript ของคุณ ดังนั้นเราจะสำรวจว่าเราจะจัดการกับการดำเนินงานแบบอะซิงโครนัสได้อย่างไรโดยใช้สัญญา เราจะครอบคลุมประเด็นต่อไปนี้ในการสอน JavaScript นี้:
- สัญญาใน JavaScript คืออะไร? คำสัญญาที่อธิบาย
- ทำไมเราใช้สัญญาใน JavaScript?
- สัญญาทำงานอย่างไรใน JavaScript?
- วิธีสร้างสัญญา?
คำสัญญาใน JavaScript คืออะไร? คำสัญญาที่อธิบาย
คำสัญญาเป็นวัตถุที่แสดงถึงคุณค่าของสภาพอากาศในการดำเนินการแบบ async ที่ได้รับการแก้ไขปฏิเสธหรืออยู่ในสถานะรอดำเนินการ ในคำง่าย ๆ เพิ่มเติมสัญญาที่ใช้ในการคืนค่าที่ยังไม่ได้ผลิตโดยบล็อกแบบอะซิงโครนัส ในความเป็นจริงมีสามสถานะของสัญญา**และสามารถอยู่ในรัฐใด ๆ ต่อไปนี้: รอดำเนินการ : สัญญาอยู่ในสถานะที่รอดำเนินการซึ่งหมายความว่าอยู่ในช่วงเริ่มต้นและกำลังดำเนินการอยู่ในขณะนี้ เติมเต็ม : สัญญาได้รับการแก้ไขและมีการส่งคืนค่าแล้ว ปฏิเสธ : นี่คือสถานะที่เกิดจากข้อผิดพลาดใด ๆ ซึ่งหมายความว่าสัญญาได้ถูกปฏิเสธ สิ่งสำคัญที่ต้องพิจารณาที่นี่คือคุณค่า/สถานะที่ส่งคืนโดยสัญญานั้นไม่เปลี่ยนแปลงและไม่สามารถเปลี่ยนแปลงได้ซึ่งหมายถึงสัญญาตรวจสอบให้แน่ใจว่าไม่มีพฤติกรรมที่ผิดปกติ
ทำไมเราถึงใช้คำสัญญาใน JavaScript?
หากคุณไม่ทราบว่า การโทรกลับนรกให้ฉันแบ่งปันว่ามันคืออะไร ก่อนอื่นการเรียกกลับเป็นฟังก์ชั่นภายในฟังก์ชั่นอื่น โดยทั่วไปฟังก์ชั่นการโทรกลับจะถูกส่งผ่านเป็นอาร์กิวเมนต์ที่สองในฟังก์ชั่นที่ดำเนินการเมื่อได้รับผลลัพธ์ ดังนั้นในหลาย ๆ สถานการณ์คุณต้องทำฟังก์ชั่นการโทรกลับและเมื่อการทำรังเพิ่มขึ้นมันก็ใกล้จะเป็นไปไม่ได้ที่จะจัดการ ดังนั้นเราจึงเรียกฟังก์ชั่นการโทรกลับมานานนรกโทรกลับ ดังนั้นสัญญาเป็นวิธีที่จะหลีกเลี่ยงสถานการณ์นรกที่โทรกลับ การใช้สัญญาให้ความสามารถในการอ่านที่ดีขึ้นและการจัดการข้อผิดพลาดที่ดีขึ้น นอกจากนี้คุณสามารถจัดการการดำเนินการแบบอะซิงโครนัสได้ดีขึ้นโดยการดึงค่าที่ส่งคืนและส่งผ่านค่านั้นไปยังฟังก์ชั่นถัดไปในห่วงโซ่
สัญญาทำงานอย่างไรใน JavaScript?
ตอนนี้ให้เข้าใจกลไกการทำงานที่อยู่เบื้องหลังสัญญา โปรดดูแผนภาพที่กล่าวถึงด้านล่าง
ตามเวิร์กโฟลว์ที่กล่าวถึงข้างต้นรายละเอียดการใช้งานค่อนข้างชัดเจน สัญญาเริ่มดำเนินการตามการสร้างและอยู่ในสถานะที่รอดำเนินการรอการตอบกลับ มีสองตัวเลือกไม่ว่าจะมีข้อมูลหรือจะมีข้อผิดพลาดเมื่อสิ้นสุดการประมวลผล เมื่อได้รับข้อมูลมันจะเข้าสู่บล็อก () บล็อกและจะเข้าสู่บล็อก. catch () ในกรณีที่เกิดข้อผิดพลาด
จะสร้างสัญญาได้อย่างไร?
จนถึงตอนนี้เราได้ครอบคลุมแนวคิดพื้นฐานของคำสัญญา ตอนนี้เราจะสำรวจว่าเราจะสร้างสัญญาใน JavaScript ได้อย่างไร มาใช้ตัวสร้างสัญญาต่อไปนี้เพื่อสร้างสัญญา
let promise = new Promise(function(resolve, reject) {
// do some processing..
});
Promise Constructor ใช้ฟังก์ชั่นเป็นอาร์กิวเมนต์ที่ใช้ข้อโต้แย้งสองข้อก่อนอีกครั้งแก้ไขและการปฏิเสธอื่น ๆ มันเรียกใช้วิธีการแก้ไข () ในกรณีที่ประสบความสำเร็จและจะเข้าสู่บล็อก DENT () ในกรณีที่เกิดข้อผิดพลาดหรือการปฏิเสธ ไปกันนิดหน่อยแล้วสำรวจการสร้างสัญญาอีกเล็กน้อย
let data = "";
let dataValue = new Promise(function (resolve, reject) {
if (data) {
resolve("There is some data.");
} else {
reject("There is no data");
}
});
console.log(dataValue);
ในรหัสตัวอย่างด้านบนคุณสามารถทำการโทร API ในบล็อก Resolve () เพิ่มเติมได้ ตอนนี้เรามาดูรูปแบบการดำเนินการของคำสัญญา JavaScript
let promiseExecution = new Promise((res, rej) => {
console.log('synchronous execution');
if (true) {
res('Success');
} else {
rej('Error');
}
})
promiseExecution.then((data) => {
console.log('It is executing asynchronously: ' + data);
}).catch((err) => {
console.log('It is executing asynchronously: ' + err);
}).finally(() => {
console.log('promise is completed');
});
console.log('Hello Word');
ต่อไปนี้เป็นผลลัพธ์ของตัวอย่างโค้ดด้านบน:
synchronous execution
Hello Word
It is executing asynchronously: Success
promise is completed
ดังนั้นรหัสภายใน The Promise Body Works แบบซิงโครนัสดังนั้นจึงพิมพ์ “การดำเนินการแบบซิงโครนัส” ถัดไป. แล้วบล็อก () บล็อกทำงานแบบอะซิงโครนัสและรอจนกว่าผลลัพธ์จะถูกสร้างขึ้น แต่การดำเนินการโปรแกรมไม่หยุดนั่นคือเหตุผลที่ “Hello Word” ถูกพิมพ์และการดำเนินการตามสัญญาได้ถูกเลื่อนออกไป หลังจากนั้น. แล้วบล็อก () บล็อกจะดำเนินการและส่งคืนค่าที่สัญญาไว้ นั่นคือเรื่องราวของคำสัญญา JavaScript อีกครั้งเนื่องจาก JavaScript เป็นเกลียวเดี่ยวสัญญาจะใช้ในการจัดการการดำเนินงานแบบอะซิงโครนัสในลักษณะที่ไม่ปิดกั้น
บทสรุป
นี่คือจุดสิ้นสุดของการสอน JavaScript นี้หวังว่าคุณจะมีความคิดที่ดีเกี่ยวกับสัญญา JavaScript เราได้กล่าวถึง สิ่งที่สัญญาใน JavaScript ทำไมเราใช้สัญญาใน JavaScriptวิธีการทำงานใน JavaScript และวิธีการสร้างสัญญา นอกจากนี้เราจะครอบคลุมหัวข้อนี้เพิ่มเติมเกี่ยวกับการใช้งานและบทบัญญัติขั้นสูง ดังนั้นผ่านบทความนี้ในกรณีที่คุณกำลังเตรียมตัวสำหรับการสัมภาษณ์
เชื่อมต่อกับเรา
ในที่สุด containerize.com ข้อเสนอการสอน JavaScript อย่างต่อเนื่องในหัวข้อที่น่าตื่นเต้นต่างๆ คุณสามารถอยู่ในวงได้โดยติดตามเราบนแพลตฟอร์มโซเชียลมีเดียของเรารวมถึง Facebook, LinkedIn และ Twitter
ถามคำถาม
คุณสามารถแจ้งให้เราทราบเกี่ยวกับคำถามหรือคำถามของคุณเกี่ยวกับ [ฟอรัม] ของเรา 11
คำถามที่พบบ่อย
คำสัญญาใน JavaScript มีอะไรบ้าง โปรดติดตาม ลิงก์ เพื่อทราบว่าสัญญาอะไรใน JavaScript