Продолжение выполнения в JavaScript: пропуск цикла, событийно-ориентированное программирование, обещания и асинхронные функции