ฉันได้ทำ Javascript บนเว็บ (วานิลลา JS, jQuery, Backbone ฯลฯ ) มาหลายปีแล้วและเมื่อไม่นานมานี้ฉันได้ทำงานกับ Node.js ฉันใช้เวลาสักครู่เพื่อหยุดการเขียนโปรแกรม "non-blocking" แต่ตอนนี้ฉันคุ้นเคยกับการใช้ callback สำหรับการดำเนินการ IO และอะไรก็ตาม
ฉันเข้าใจว่า Javascript นั้นเป็นเธรดเดียวโดยธรรมชาติ ฉันเข้าใจแนวคิดของโหนด "คิวเหตุการณ์" สิ่งที่ฉันไม่เข้าใจคือสิ่งที่กำหนดว่าการดำเนินการจาวาสคริปต์แต่ละรายการนั้นคือ "การบล็อก" กับ "การไม่บล็อก" ฉันจะทราบได้อย่างไรว่าการดำเนินการใดที่ฉันสามารถพึ่งพาเพื่อสร้างเอาต์พุตแบบซิงโครนัสสำหรับฉันที่จะใช้ในโค้ดในภายหลังและอันไหนที่ฉันจะต้องผ่านการเรียกกลับเพื่อให้ฉันสามารถประมวลผลเอาท์พุทได้ มีรายการฟังก์ชั่น Javascript ที่อื่นที่ไม่ตรงกัน / ไม่บล็อกและรายการของฟังก์ชันที่ซิงโครนัส / บล็อกหรือไม่ อะไรที่ทำให้แอพ Javascript ของฉันไม่เป็นหนึ่งในการแข่งขันที่ยิ่งใหญ่
ฉันรู้ว่าการดำเนินการที่ใช้เวลานานเช่นการปฏิบัติการ IO ในการดำเนินงาน Node และ AJAX บนเว็บต้องการให้มีการแบบอะซิงโครนัสดังนั้นจึงใช้การเรียกกลับ - แต่ใครจะพิจารณาว่าคุณสมบัติใดเป็น "เวลานาน"? มีการจัดเรียงของทริกเกอร์ภายในการดำเนินการเหล่านี้ที่ลบออกจาก "คิวเหตุการณ์" ปกติหรือไม่ ถ้าไม่สิ่งที่ทำให้พวกเขาแตกต่างจากการดำเนินงานที่เรียบง่ายเช่นการกำหนดค่าให้กับตัวแปรหรือวนลูปผ่านอาร์เรย์
บางทีฉันอาจไม่ได้คิดเรื่องนี้อย่างถูกต้อง - หวังว่าจะมีใครบางคนสามารถกำหนดฉันให้ตรงได้ ขอบคุณ!