Чи можу я використовувати асинхронне очікування в циклі for?
- Blog
- Чи можу я використовувати асинхронне очікування в циклі for?
admin
У разі використання async/await із циклом for кожна ітерація очікує вирішення попередньої асинхронної операції перед переходом до наступної ітерації. Це збереже операції циклу в потрібному порядку і не принесе нам жодних сюрпризів.
Цикл while також можна використовувати з async/await. Це гарантує, що асинхронна функція викликається принаймні один раз перед перевіркою умови.
Усередині циклу myFunction() ми використовуйте ключове слово await щоб дочекатися завершення виклику API, перш ніж перейти до наступної ітерації циклу. Це гарантує, що цикл виконується синхронно, коли кожна ітерація очікує завершення попередньої ітерації перед початком.
Вам потрібно помістіть цикл у асинхронну функцію, тоді ви можете використовувати await і цикл зупиняє ітерацію, доки обіцянка, яку ми очікуємо, не буде вирішена. Ви також можете використовувати цикли while або do.. while або for з цією ж структурою.
async і await Усередині функції async ви можете використовувати ключове слово await перед викликом функції, яка повертає обіцянку. Це змушує код чекати в цей момент, поки обіцянка не буде вирішена, після чого виконане значення обіцянки розглядається як значення, що повертається, або відхилене значення викидається.
Тому що, якби ви робили те саме з мільйоном потоків, у вас виникли б ті самі проблеми та більше, тому що (а) потоки займають більше оперативної пам’яті, (b) потоки дорожчі для створення та знищення, і (c) потоки мають більше регістрів для збереження/відновлення під час перемикання контексту, ніж співпрограми.
© Copyright 2025Місцеві поради| Theme developed by Lucid Solutions