การส่งผลลัพธ์แบบอะซิงโครนัสไปยังคอลแบ็กใน JavaScript
ตอนนี้ให้การดำเนินการแบบอะซิงโครนัสหลังจากเสร็จสิ้น ไม่แสดงผลอะไรในคอนโซล แต่ ได้รับผลลัพธ์บางอย่าง ให้มันเป็น อาร์เรย์ที่มีข้อมูล ซึ่งตัวอย่างเช่น อาจจะ ได้รับผ่าน AJAX แต่เนื่องจากเรา ยังไม่สามารถทำงานกับ AJAX ได้ เราก็จะ จำลองการรับนี้ขึ้นมา:
function make() {
setTimeout(function() {
let res = [1, 2, 3, 4, 5]; // อาร์เรย์ที่มีผลลัพธ์
}, 3000);
}
มาทำให้อาร์เรย์ที่มีผลลัพธ์ถูกส่ง ไปยังพารามิเตอร์ของคอลแบ็ก:
function make(callback) {
setTimeout(function() {
let res = [1, 2, 3, 4, 5];
callback(res); // ส่งผลลัพธ์เป็นพารามิเตอร์
}, 3000);
}
ตอนนี้ เมื่อส่งคอลแบ็กไปยังการเรียกฟังก์ชัน
make เราสามารถเขียนพารามิเตอร์ในนั้นได้
- และพารามิเตอร์นี้จะได้รับผลลัพธ์ของการดำเนินการ
แบบอะซิงโครนัส:
make(function(res) {
console.log(res); // อาร์เรย์ของเรา
});
กรุณาเขียนโค้ดคอลแบ็กเพิ่มเติมเพื่อให้มันสามารถหา ผลรวมขององค์ประกอบในอาร์เรย์ที่มีผลลัพธ์ได้