javascript - 在异步函数之外等待不会在控制台中抛出错误

标签 javascript asynchronous async-await console google-chrome-devtools

MDN says :

Remember, the await keyword is only valid inside async functions. If you use it outside of an async function's body, you will get a SyntaxError.

但这不是真的。

在 DevTools 控制台中尝试这段代码,没有错误,只有结果:

async function a(val) { return val; }
await a(10) // await is not inside async function
10

代码或文档有什么问题?

最佳答案

MDN 文档是正确的,它解释了它如何在 JavaScript 中工作。

这只是 DevTools 添加的一项功能,可让您更轻松地测试异步/等待代码。而且它不是 JavaScript 功能。

它看起来像是从 11/08/2017 开始在 DevTools 中得到支持:

https://chromium.googlesource.com/chromium/src.git/+/e8111c396fef38da6654093433b4be93bed01dce

如果你窥探

ConsoleModel.js

在第 129 行,它们具有评估标记为异步的表达式的函数:

async evaluateCommandInConsole

关于javascript - 在异步函数之外等待不会在控制台中抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53905660/

相关文章:

c# - HttpClient.GetAsync 挂起,然后互联网在执行期间消失

c# - Xamarin HttpClient.PostAsync 任务在 Android 中超时,在 iOS 中有效

c# - 如何安全地取消任务?

javascript - AND 多个参数

javascript - Mapbox.js 无法将 onclick 事件附加到弹出内容

spring - JSON 使用 Spring MVC 3.2 延迟结果错误返回

javascript - 异步等待和非异步函数的问题

javascript - three.js加载多个对象异步问题

javascript - touchstart 与 touchbegin 事件

javascript - JsTree - 选择父节点将导致浏览器卡住