Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Body.json解析是否从事件循环中运行?_Javascript_Json_Fetch Api - Fatal编程技术网

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的绘制?@Cheetah
JSON.parse
。可能会调用与此方法使用的底层函数相同的函数,但浏览器不会使用您可以访问的方法,也不会使用主循环线程号。现在,它会阻止UI吗?很难说,它依赖于实现和设备。@kaido-这是我所期望的答案(特定于实现)…我猜json解析很可能在后台线程上完成。