Все в порядке.
Вы нашли особенность консоли DevTools !Это , чтобы максимально упростить экспериментирование с async
- await
кодом в реальной среде.Вы можете себе представить, что любой код, который вы вводите в консоль, автоматически включается в функцию async
.На самом деле, как указал другой ответ, именно это и происходит.
Важно отметить, что хотя это работает в консоли, это не является функцией JavaScript.
Итак,все ваши наблюдения верны и ожидаемы!Документы MDN точны, потому что если вы попытаетесь загрузить скрипт на страницу, которая использует await
вне функции async
, произойдет ошибка.С другой стороны, консоль DevTools предназначена для этой цели (исключительно для эргономики разработчика), поэтому ваш код работает без ошибок в консоли.
Это не единственный трюк консоли DevToolsимеет рукав .В общем, если вы действительно хотите проверить, как какой-то код выполняется на странице, лучше всего запускать скрипт на странице, а не в консоли.