JavaScript هي لغة ذات خيط واحد، مما يعني أنها تستطيع القيام بشيء واحد فقط في كل مرة. ومع ذلك، غالبًا ما تحتاج تطبيقات الويب إلى تنفيذ مهام مثل جلب البيانات من الخادم، الأمر الذي قد يستغرق بعض الوقت. إذا كان على JavaScript الانتظار حتى تنتهي كل مهمة قبل المضي قدمًا، فسيؤدي ذلك إلى جعل تطبيق الويب الخاص بك بطيئًا وغير مستجيب. هذا هو المكان الذي يأتي فيه جافا سكريبت غير المتزامن (غير المتزامن).
يسمح جافا سكريبت غير المتزامن للتعليمات البرمجية الخاصة بك ببدء مهمة ثم الانتقال إلى مهام أخرى أثناء انتظار اكتمال هذه المهمة. بمجرد الانتهاء من المهمة، يمكن أن يعود الكود الخاص بك ويتعامل مع النتيجة. وهذا يساعد على إبقاء تطبيقك سريعًا وسريع الاستجابة.
متزامن مقابل غير متزامن:
console.log("Start"); let result = someFunction(); // This might take a while console.log("End");
في التعليمات البرمجية المتزامنة، لن يتم تسجيل رسالة "النهاية" إلا بعد اكتمال someFunction()، مما قد يؤدي إلى إبطاء الأمور.
غير متزامن: يمكن أن تبدأ المهام وتنتهي بشكل مستقل، لذلك لا يعلق الكود الخاص بك في الانتظار. على سبيل المثال:
console.log("Start"); setTimeout(() => { console.log("End"); }, 2000);
هنا، سيتم تسجيل رسالة "النهاية" بعد ثانيتين، ولكن في هذه الأثناء، يمكن أن يستمر الكود الخاص بك في القيام بأشياء أخرى.
رد الاتصال:
function fetchData(callback) { setTimeout(() => { let data = "Some data"; callback(data); }, 2000); } fetchData((data) => { console.log(data); // This will log "Some data" after 2 seconds });
الوعود:
let promise = new Promise((resolve, reject) => { let success = true; if (success) { resolve("Task completed successfully!"); } else { reject("Task failed!"); } }); promise.then((message) => { console.log(message); }).catch((error) => { console.log(error); });
غير متزامن/انتظار:
async function fetchData() { try { let data = await someAsyncTask(); console.log(data); } catch (error) { console.error("Error:", error); } }
يعد فهم جافا سكريبت غير المتزامن أمرًا ضروريًا لبناء تطبيقات ويب سريعة الاستجابة وفعالة، حيث يسمح للتعليمات البرمجية الخاصة بك بأداء المهام دون التعثر في انتظار اكتمال العمليات البطيئة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3