عمليات الاسترجاعات في JavaScript: غير متزامنة أم لا؟
عمليات الاسترجاعات في JavaScript ليست غير متزامنة عالميًا. في سيناريوهات معينة، مثل المثال الذي قدمته مع وظائف addOne وsimpleMap، تعمل التعليمات البرمجية بشكل متزامن.
JavaScript غير متزامن في المتصفح
وظائف AJAX المستندة إلى رد الاتصال في jQuery غالبًا ما تكون غير متزامنة لأنها تتضمن طلبات XHR (XMLHttpRequest). بشكل افتراضي، تكون طلبات XHR في المتصفحات غير متزامنة، مما يسمح بتنفيذ البرنامج النصي المستمر أثناء معالجة الطلب.
JavaScript غير متزامن في Node.js
في Node.js، ينشأ السلوك غير المتزامن بشكل عام من عمليات الإدخال/الإخراج (I/O)، مثل إدخال/إخراج الملف، وprocess.nextTick، وsetTimeout، وsetInterval. تكون مكالمات قاعدة البيانات المستندة إلى رد الاتصال مع MongoDB/Mongoose غير متزامنة نظرًا لعمليات الإدخال/الإخراج الأساسية المتضمنة في التفاعل مع قاعدة البيانات.
المواقف غير المتزامنة المحددة مسبقًا
غالبًا ما يكون عدم التزامن متأصلة في البيئة. في المتصفح، تكون وظائف رد الاتصال المرتبطة بطلبات XHR غير متزامنة بطبيعتها. في Node.js، تكون عمليات الاسترجاعات المرتبطة بعمليات الإدخال / الإخراج غير متزامنة أيضًا.
وظائف غير متزامنة مخصصة
دون الاعتماد فقط على وظائف بيئية محددة، يمكنك تحقيق سلوك غير متزامن من خلال الاستفادة من وعود ES6. توفر الوعود آلية على مستوى اللغة لتحديد العمليات غير المتزامنة. يتم دائمًا تنفيذ وظائف رد الاتصال المرتبطة بالوعود (عبر ثم والالتقاط) بشكل غير متزامن، مما يضمن عدم حظر التعليمات البرمجية التي تتبع الوعد.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3