<div><div dir="auto">It might be useful on some occasions to destructure async iterators. For the sake of example, I'm using `await [...]` as the syntax, but I'm by no means married to it.</div><div dir="auto"><br></div><div dir="auto">1. Collecting a Node stream into a buffer:</div><div dir="auto"><br></div><div dir="auto">```js</div><div dir="auto">const await [...buffers] = someStream.setEncoding('buffer')</div><div dir="auto">return Buffer.concat(buffers)</div><div dir="auto">```</div><div dir="auto"><br></div><div dir="auto">2. Collecting the first matching entry in a database scan:</div><div dir="auto"><br></div><div dir="auto">```js</div><div dir="auto">// It's different for each database</div><div dir="auto">const await [item] = db.scan({</div><div dir="auto">    filter: {key: value},</div><div dir="auto">    limit: 1,</div><div dir="auto">})</div><div dir="auto">```</div><div dir="auto"><br></div><div dir="auto">It's not a common need, but it's useful either way, and it brings async iterators and sync iterators closer to feature parity.</div></div><div>-- <br><div dir="ltr" data-smartmail="gmail_signature">-----<br><br>Isiah Meadows<br><a href="mailto:contact@isiahmeadows.com" target="_blank">contact@isiahmeadows.com</a><br><a href="http://www.isiahmeadows.com" target="_blank">www.isiahmeadows.com</a></div>
</div>