⊗jsSpACInr 155 of 294 menu

รหัสอะซิงโครนัสกับคอลแบ็กใน JavaScript

สมมติว่าเรามีฟังก์ชันอะซิงโครนัสอยู่หนึ่งฟังก์ชัน:

function make() { setTimeout(function() { console.log('1'); }, 3000); }

สมมติว่าเราใช้ฟังก์ชันนี้ดังต่อไปนี้:

make(); console.log('2'); // จะถูกดำเนินการก่อน

สมมติว่าเราต้องการทำให้การแสดงผลครั้งที่สองในคอนโซลถูกดำเนินการหลังจากที่การดำเนินการอะซิงโครนัสภายในฟังก์ชันเสร็จสิ้น หนึ่งในแนวทางที่ใช้สำหรับสิ่งนี้คือการใช้ คอลแบ็ก: ให้เราห่อหุ้มโค้ดที่ต้องการรอไว้ในฟังก์ชันนิรนามและส่งผ่านเป็นพารามิเตอร์ไปยังฟังก์ชัน make:

make(function() { console.log('2'); });

แน่นอนว่าเพียงแค่นี้ยังแก้ปัญหาเราไม่ได้ เรากำลังทำข้อตกลงดังนี้: หากต้องการดำเนินการโค้ดหลังจากที่ make ทำงานเสร็จ ให้ส่งโค้ดนั้นมาเป็นคอลแบ็กในการเรียกใช้ make

มาแก้ไขโค้ดของฟังก์ชัน make เพื่อให้มันเริ่มทำงานตามข้อตกลงของเรา:

function make(callback) { setTimeout(function() { console.log('1'); // การดำเนินการอะซิงโครนัสบางอย่าง อาจมีมากกว่าหนึ่ง callback(); // จากนั้นคอลแบ็กของเรา }, 3000); }

บอกมาสิว่าตัวเลขจะถูกแสดงผลในคอนโซลตามลำดับใด:

function make(callback) { setTimeout(function() { console.log('1'); callback(); }, 3000); } make(function() { console.log('2'); console.log('3'); });
ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ