Birkaç yıldır web tabanlı Javascript (vanilla JS, jQuery, Backbone vb.) Yapıyorum ve son zamanlarda Node.js. ile bazı çalışmalar yapıyorum. Bloke etmeyen programlamanın askıya alınması biraz zaman aldı, ancak şimdi GÇ işlemleri için geri aramaları kullanmaya alışmaya başladım.
Javascript’in doğası gereği tek dişli olduğunu anladım. "Olay sırası" düğümü kavramını anlıyorum. Anlamadığım şey, bireysel bir javascript işleminin "engelleme" ile "engellemememe" olup olmadığını belirleyen şey. Daha sonraki kodda kullanmam için hangi işlemleri eş zamanlı olarak bir çıktı üretmeye dayanabileceğimi ve ilk işlemleri tamamladıktan sonra çıktıyı işleyebilmem için hangilerini geri çağırmaya ihtiyacım olacağını nasıl bilebilirim? Asenkron / engelleyici olmayan bir yerde bir Javascript işlevi listesi ve senkronize / engelleyici bir listesi var mı? Javascript uygulamamın dev bir yarış koşulu olmasını engelleyen nedir?
Düğümdeki G / Ç işlemleri ve web'deki AJAX işlemleri gibi uzun zaman alan işlemlerin eşzamansız olmalarını gerektirdiğinden ve bu nedenle geri arama kullanmalarını gerektirdiğini biliyorum - ama kimin "uzun süre" olarak nitelendirilebileceğini kim belirliyor? Bu işlemlerde onları normal "olay kuyruğundan" kaldıran bir tür tetikleyici var mı? Değilse, değişkenlere değer atamak veya dizilerden döngü yapmak gibi basit işlemlerden farklı kılan şey, senkronize bir şekilde bitirmeye bağlı olabileceğimiz gibi görünüyor?
Belki de bunu doğru düşünemiyorum bile - birinin beni düzeltebileceğini umuyorum. Teşekkürler!