عمليات الاسترجاعات في JavaScript: ليست كلها غير متزامنة
يفترض العديد من مطوري JavaScript أن جميع عمليات الاسترجاعات في JavaScript غير متزامنة، خاصة في مواقف محددة، مثل المتصفح- طلبات XHR المستندة إلى ملف Node.js I/O. ومع ذلك، تختلف بيئات المتصفح والعقدة في معالجتها لعدم تزامن رد الاتصال.
بيئة المتصفح
في المتصفحات، ينشأ عدم تزامن رد الاتصال في المقام الأول من طلبات XHR. وذلك لأن كائن XHR في المتصفح يعمل بشكل افتراضي على التشغيل غير المتزامن، مما يسمح بطلبات غير محظورة. ومع ذلك، توفر وظائف AJAX الخاصة بـ jQuery علامة "غير متزامنة" يمكن ضبطها على "خطأ" لفرض الطلبات المتزامنة.
بيئة Node.js
في Node.js، عدم التزامن عادةً ما تنبع عمليات رد الاتصال من العمليات التي تتضمن إدخال/إخراج الملف، أو Process.nextTick، أو setTimeout، أو setInterval. عند تنفيذ استدعاءات قاعدة البيانات مع مكتبات مثل MongoDB/Mongoose، فإن هذه العمليات تشترك في حلقة الأحداث V8 نظرًا لطبيعتها المحظورة بطبيعتها.
تحديد عمليات الاسترجاعات غير المتزامنة
غياب الطريقة الموحدة لتسمية عمليات الاسترجاعات غير المتزامنة في JavaScript يمكن أن تجعل من الصعب تمييز أي منها حقًا. يجب على المطورين مراجعة الوثائق أو فحص تنفيذ التعليمات البرمجية لتحديد عدم التزامن.
إنشاء عمليات رد اتصال غير متزامنة
في الإصدارات السابقة من JavaScript، يتطلب تحقيق عدم التزامن استخدام الوظائف التي يوفرها المضيف . ومع ذلك، مع تقديم الوعود في ECMAScript 6، ظهر نهج على مستوى اللغة لعدم التزامن. تضمن الوظائف التي تُرجع الوعود التنفيذ غير المتزامن لعمليات الاسترجاعات المسجلة من خلاله.في الختام، ليست كل عمليات الاسترجاعات في JavaScript غير متزامنة بطبيعتها. تتعامل بيئات المتصفح والعقدة مع عدم التزامن بشكل مختلف، ويتطلب تحديد عدم تزامن رد الاتصال مراجعة الوثائق وفحص التعليمات البرمجية. في حين أن الوظائف التي يوفرها المضيف توفر وسيلة لإنشاء وظائف غير متزامنة، فإن Promises توفر طريقة موحدة ومريحة لتحقيق عدم التزامن في JavaScript.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3