كيفية جعل وظائف JavaScript الخاصة بك في وضع السكون

تعرف على كيفية جعل وظيفتك تنام لفترة معينة من الوقت في JavaScript

في بعض الأحيان تريد أن تتوقف وظيفتك مؤقتًا عن التنفيذ لمدة محددة من الثواني أو أجزاء من الثانية.

في لغة برمجة مثل C أو PHP ، يمكنك الاتصال بـsleep(2)لجعل البرنامج يتوقف لمدة ثانيتين. جافا لديهاThread.sleep(2000)، بيثونtime.sleep(2)، اذهب لديهtime.Sleep(2 * time.Second).

لا تحتوي JavaScript على وظيفة نوم أصلية ، ولكن بفضل تقديم الوعود (وغير المتزامن / انتظار في ES2018) يمكننا تنفيذ هذه الميزة بطريقة لطيفة جدًا ويمكن قراءتها ، لجعل وظائفك تنام:

const sleep = (milliseconds) => {
  return new Promise(resolve => setTimeout(resolve, milliseconds))
}

أو ، في Node.js ، أبسط:

const { promisify } = require('util')
const sleep = promisify(setTimeout)

شاهد المزيد علىوعد

يمكنك الآن استخدام هذا مع ملفthenأتصل مرة أخرى:

sleep(500).then(() => {
  //do stuff
})

أو استخدمها في وظيفة غير متزامنة:

const doSomething = async () => {
  await sleep(2000)
  //do stuff
}

doSomething()

تذكر أنه نظرًا لكيفية عمل JavaScript (اقرأ المزيد عنهاحلقة الحدث) ، لا يؤدي هذا إلى إيقاف تنفيذ البرنامج بالكامل كما قد يحدث بلغات أخرى ، ولكن بدلاً من ذلك تنام وظيفتك فقط.

يمكنك تطبيق نفس المفهوم على الحلقة:

const list = [1, 2, 3, 4]
const doSomething = async () => {
  for (const item of list) {
    await sleep(2000)
    console.log('🦄')    
  }
}

doSomething()


المزيد من دروس js: