- From: Jake Archibald <notifications@github.com>
- Date: Mon, 20 Aug 2018 15:33:36 +0000 (UTC)
- To: heycam/webidl <webidl@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Monday, 20 August 2018 15:33:59 UTC
It'd be nice if we could create async iterators in a similar way to iterators.
```webidl
interface Whatever {
// …
async_iterable<Something>;
};
```
The prose would need to be a little more complicated than `iterable`, probably written like an generator:
To asynchronously iterate over a `Whatever`, run the following steps:
1. Run these steps *in parallel*:
1. Let *i* be 0.
1. While true:
1. Wait 1 second.
1. Yield using the networking task source the value of *i*.
1. Increment *i* by 1.
"Yield" would queue a task on the given task source to resolve the iteration's promise with the given value. The algorithm would not advance until the next iteration was requested.
I guess it's tricky that task sources are an HTML thing, but I can't see how it can be handled correctly otherwise.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/heycam/webidl/issues/580
Received on Monday, 20 August 2018 15:33:59 UTC