- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Fri, 15 Nov 2013 21:23:09 -0500
- To: Jonas Sicking <jonas@sicking.cc>
- CC: "public-script-coord@w3.org" <public-script-coord@w3.org>, Anne van Kesteren <annevk@annevk.nl>
On 11/15/13 9:17 PM, Jonas Sicking wrote:
> Can you give an example of when this is a problem. Snapshotting an
> iterable to me simply means iterating the iterator all the way through
> and remembering the data that it returned.
Sure.
It's just that no one normally working with iterables would do that.
> This is generally something that we want to do synchronously from the
> API before returning. Otherwise we need to defined exactly when the
> iterator is read. I can't think of any existing APIs that deal with
> array-like things and that doesn't iterate through the whole
> array-like before returning.
The typical way one would use an iterable is something like this:
function f(iterable) {
for (value of iterable) {
doStuff(value);
}
}
whereas the snapshotting approach is more like:
function f(iterable) {
var snapshot = Array.from(iterable);
for (value of snapshot) {
doStuff(value);
}
}
which is slightly odd to do as the default thing with iterables...
-Boris
Received on Saturday, 16 November 2013 02:23:42 UTC