Javascript Body.json解析是否从事件循环中运行?
关于堆栈溢出,有很多问题围绕着Javascript Body.json解析是否从事件循环中运行?,javascript,json,fetch-api,Javascript,Json,Fetch Api,关于堆栈溢出,有很多问题围绕着Body.json(),但我找不到一个能回答我具体问题的问题 如果我运行JSON.parse(),这将阻止事件循环,直到它完成解析 fetch() Body.json()还返回一个承诺。这是否意味着它从事件循环中调用JSON.parse(),并且只在对象完成解析后安排回调?JSON.parse不一定是异步调用的。 Asynchronous.json返回承诺,因为从请求承诺返回的结果不包含响应体,.json需要下载响应体才能解析它它需要读取数据流,而不是“需要下载响应
Body.json()
,但我找不到一个能回答我具体问题的问题
如果我运行JSON.parse()
,这将阻止事件循环,直到它完成解析
fetch()
Body.json()
还返回一个承诺。这是否意味着它从事件循环中调用JSON.parse()
,并且只在对象完成解析后安排回调?JSON.parse不一定是异步调用的。
Asynchronous.json返回承诺,因为从请求承诺返回的结果不包含响应体,.json需要下载响应体才能解析它它需要读取数据流,而不是“需要下载响应体”。在您使用请求主体时,数据已经下载。因此在主事件循环线程上调用了JSON.parse
,基本上阻止了UI的绘制?@CheetahJSON.parse
。可能会调用与此方法使用的底层函数相同的函数,但浏览器不会使用您可以访问的方法,也不会使用主循环线程号。现在,它会阻止UI吗?很难说,它依赖于实现和设备。@kaido-这是我所期望的答案(特定于实现)…我猜json解析很可能在后台线程上完成。