JavaScript

Функція сну JavaScript

Функція сну JavaScript

Javascript - це мова свободи, але в той же час є функціонально орієнтованою мовою. На відміну від інших мов, javascript не забезпечує вбудовану функцію sleep (). Ви можете створити власну функцію sleep (), використовуючи вбудовану функцію setTimeout (), або найновіший ECMAScript обіцяє функцію async-await. У цій статті показано, як зупинити або призупинити виконання функції сну на бажаний проміжок часу за допомогою обіцянок або функцій асинхронного очікування.

Перед початком

Перш ніж почати будувати функцію сну, потрібно зрозуміти, що функція setTimeout () не працює, якщо ви очікуєте, що вона зупинить виконання. Багато програмістів та розробників намагаються використовувати функцію з циклами, але не вдається, оскільки функція setTimeout () використовується для очікування певної кількості часу, а потім запускає задану функцію. Однак ви можете використовувати функцію setTimeout () для побудови функції сну за допомогою обіцянки, якщо ваша мета - зупинити виконання на бажаний проміжок часу.

Використання функції сну

Отже, ми створимо спеціальну функцію сну, в якій функція отримає час у мілісекундах як аргумент і поверне обіцянку. Обіцянка включатиме функцію setTimeout (), яка передаватиме вирішувач як функцію та час у мілісекундах функції setTimeout (). Отже, зрештою, функція сну повинна виглядати так:

функція сплячого режиму (мс)
повернути новий Promise (resolver => setTimeout (resolver, ms));
;

І тепер, де б ви не хотіли використовувати цю функцію сну, ви можете легко її використовувати.

Тепер ми використаємо цю функцію сну на кількох прикладах, щоб показати вам, як використовувати її на практиці.

По-перше, ми спробуємо втілити якийсь текст і викликати функцію сну. Оскільки функція сну повертає обіцянку, ми ставимо функцію then після неї, в якій ми будемо консолювати деякий текст і передавати аргумент '5000' функції сну. Після запуску програми ви побачите на консолі, що вона буде спати протягом 5 секунд.

консолі.журнал ("Функція сну зачекає 10 секунд, а потім надрукує" Готово "");
спати (5000).тоді (() =>
консолі.журнал ("Готово");
)

Ви можете спостерігати затримку в 5 секунд, щоб дістатися до стану „Готово” на консолі.

Припустимо, ми хочемо виконувати анімацію через кожні 2 секунди. Для цього ми просто напишемо асинхронну функцію анімації, в якій ми анімуємо щось, зупинимо виконання на 2 секунди за допомогою режиму сну, а потім повторимо цей процес, використовуючи цикл for протягом 10 разів.

асинхронна анімація функції (мс)
консолі.журнал ("запуск…");
для (нехай i = 0; i < 10; i++)
консолі.журнал ("анімація через 2 секунди ...")
чекати сну (мс)

консолі.log ("Це кінець.");

Після написання функції асинхронної анімації ми можемо тепер викликати функцію анімації.

анімація (2000);

Після запуску коду ви побачите на консолі, що текст «анімація через 2 секунди» повторюється кожні дві секунди.

Висновок

Ця стаття показала вам, як створити власну функцію сну, поряд із кількома демонстраціями. Сподіваюся, ця стаття допомогла вам краще зрозуміти використання функції сну. Ви можете дізнатись більше про Javascript на linuxhint.ком.

Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...