diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/zh-cn/web/api/readablestreamdefaultreader | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/zh-cn/web/api/readablestreamdefaultreader')
-rw-r--r-- | files/zh-cn/web/api/readablestreamdefaultreader/index.html | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/files/zh-cn/web/api/readablestreamdefaultreader/index.html b/files/zh-cn/web/api/readablestreamdefaultreader/index.html new file mode 100644 index 0000000000..499d15013c --- /dev/null +++ b/files/zh-cn/web/api/readablestreamdefaultreader/index.html @@ -0,0 +1,144 @@ +--- +title: ReadableStreamDefaultReader +slug: Web/API/ReadableStreamDefaultReader +translation_of: Web/API/ReadableStreamDefaultReader +--- +<p>{{APIRef("Streams")}}{{SeeCompatTable}}</p> + +<p><br> + <span class="seoSummary"> <a href="/en-US/docs/Web/API/Streams_API">Streams API</a></span> 的 <strong>ReadableStreamDefaultReader </strong>的接口 表示一个可被用于读取来自网络提供的流数据(例如 fetch 请求)的默认读取器</p> + +<h2 id="构造方法">构造方法</h2> + +<dl> + <dt><a href="https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader/ReadableStreamDefaultReader" title="ReadableStreamDefaultReader()构造函数创建并返回一个ReadableStreamDefaultReader()对象实例。"><code>ReadableStreamDefaultReader()</code></a></dt> + <dd>创建 和 返回 一个 <code>ReadableStreamDefaultReader()</code> 对象实例.</dd> +</dl> + +<h2 id="属性">属性</h2> + +<dl> + <dt><a href="https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader/closed" title="ReadableStream接口的封闭getter属性返回一个承诺,如果流关闭或读取器的锁被释放,则返回承诺;如果流错误则拒绝。"><code>ReadableStreamDefaultReader.closed</code></a><br> + </dt> + <dd>允许你编写 当stream结束时 执行的代码 . 如果这个stream变成关闭状态或者 reader 的锁(lock)被释放 则返回一个状态是 fulfills的 promise,如果这个stream 报错则返回rejects的promise.</dd> +</dl> + +<h2 id="方法">方法</h2> + +<dl> + <dt><a href="https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader/cancel" title="ReadableStreamDefaultReader接口的cancel()方法取消流,表示消费者对流中兴趣的丧失。 所提供的理由参数将被提供给潜在的来源,可能会或可能不会使用它。"><code>ReadableStreamDefaultReader.cancel()</code></a></dt> + <dd>取消这个 stream, 表示对这个stream失去了兴趣. 提供的参数将传递给源source, 可能会也可能不会用到这些参数.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader/read" title="ReadableStreamDefaultReader接口的read()方法返回一个承诺,提供对流内部队列中下一个块的访问。"><code>ReadableStreamDefaultReader.read()</code></a></dt> + <dd>返回一个promise,提供对stream内部队列中下一个块(chunk)访问的promise.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader/releaseLock" title="ReadableStreamDefaultReader接口的releaseLock()方法释放读取器对流的锁定。"><code>ReadableStreamDefaultReader.releaseLock()</code></a></dt> + <dd>释放读取这个stream的锁.</dd> +</dl> + +<h2 id="例子">例子</h2> + +<p>在下面的例子中, {{domxref("Response")}} 被创建为流 <font><font>HTML片段 fetched 来自其他源.</font></font></p> + +<p>它展示了一个 {{domxref("ReadableStream")}} 和一个 <a href="https://developer.mozilla.org/en-US/docs/Web/API/Uint8Array" title="有关这方面的文件尚未编写; 请考虑贡献!"><code>Uint8Array</code></a>组合使用的例子.</p> + +<pre class="brush: js">fetch("https://www.example.org/").then((response) => { + const reader = response.body.getReader(); + const stream = new ReadableStream({ + start(controller) { + // The following function handles each data chunk + function push() { + // "done" is a Boolean and value a "Uint8Array" + return reader.read().then(({ done, value }) => { + // Is there no more data to read? + if (done) { + // Tell the browser that we have finished sending data + controller.close(); + return; + } + + // Get the data and send it to the browser via the controller + controller.enqueue(value); + }).then(push); + }; + + push(); + } + }); + + return new Response(stream, { headers: { "Content-Type": "text/html" } }); +}); +</pre> + +<h2 id="产品规格"><font><font>产品规格</font></font></h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + <tr> + <td>{{SpecName('Streams','#default-reader-class','ReadableStreamDefaultReader')}}</td> + <td>{{Spec2('Streams')}}</td> + <td>初始定义</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Basic support</td> + <td> + <p>{{CompatChrome(52.0)}}</p> + </td> + <td>{{CompatGeckoDesktop("57.0")}}</td> + <td>{{CompatUnknown}}</td> + <td> + <p>{{CompatOpera(39)}}</p> + </td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Feature</th> + <th>Android Webview</th> + <th>Chrome for Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>Firefox OS</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Basic support</td> + <td>{{CompatChrome(52)}}</td> + <td>{{CompatChrome(52)}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatUnknown}}</td> + <td>{{CompatOperaMobile(39)}}</td> + <td>{{CompatUnknown}}</td> + </tr> + </tbody> +</table> +</div> |