是WebAPI Body.json异步的



Body.json返回一个promise。

这种方法是否异步,以避免在读取大型入站数据流时发生阻塞?

它是否重复执行类似setTimeout(sampleStream, 0)的操作,直到找到流的末尾?

.json()是异步的吗?

是的。这就是它回报承诺的原因。

这种方法是否异步,以避免在读取大型入站数据流时发生阻塞?

是的。您在标头到达之后立即收到Response,并且接收正文可能需要一些时间。

它是否重复执行类似setTimeout(sampleStream, 0)的操作,直到找到流的末尾?

不完全是。它不使用setTimeout,它通过重复获得下一个块的promise来从流中读取——只需检查自己是否从ReadableStream中读取所有字节
最重要的是,这一切都发生在后台任务中,而不需要考虑JavaScript。正如该部分的注释告诉的那样:由于读者授予独占访问权限,因此无法观察到如何阅读的实际机制。如果方便的话,实现可以使用更直接的机制

最新更新