Answer
t.me/js_testОтвет:
Uncaught SyntaxError: await is only valid in async function
Объяснение:
Метод forEach выполняет какое-то действие для каждого элемента массива.
Наш код выдаст ошибку. Почему? Потому что мы не можем использовать await внутри синхронной функции. Как вы можете видеть processArray — это асинхронная функция. Но анонимная функция, которую мы используем для forEach, является синхронной.
Для того, чтобы исправить данную проблему мы можем определить анонимную функцию как асинхронную (примеры будут ниже). Но forEach не будет дожидаться выполнения завершения задачи. forEach — синхронная операция. Она просто запустит задачи и пойдет дальше.
Чтобы дождаться результата выполнения тела цикла нам нужно вернуться к старому доброму циклу "for". Но в этот раз мы будем использовать его новую версию с конструкцией for..of.
Код для проверки:
//анонимная функция как асинхронная
async function processArray(array) {
array.forEach(async (item) => {
await func(item);
})
console.log('Done!');
}
//for..of.
async function processArray(array) {
for (const item of array) {
await delayedLog(item);
}
console.log('Done!');
}