[mediacapture-image] Async methods' "in parallel" steps need help.

jan-ivar has just created a new issue for https://github.com/w3c/mediacapture-image:

== Async methods' "in parallel" steps need help. ==
The pattern used by the async methods under [3.2 Methods](https://w3c.github.io/mediacapture-image/#imagecapture-methods) is wrong: When invoked: 
 1. Check state and return rejected promise if wrong.
 2. Queue a task, using the **DOM manipulation task source**, that runs the following steps in parallel:
    1. Manipulate media tracks.
    2. **Return a promise** resolved with some value.

The promise must be returned *immediately* from the function, not in a queued task where it's ignored.
Also the *DOM manipulation task source* doesn't run in parallel. It's the main thread we're already on. We don't want to do media operations on the main thread.

We should instead follow the [promise guide](https://www.w3.org/2001/tag/doc/promises-guide#explicit-async-steps) and use: When invoked:
 1. Check state and return rejected promise if wrong.
 2. Let *p* be a new promise.
 2. Run the following steps in parallel:
    1. Manipulate media tracks.
    2. Resolve *p* with some value.
 3. Return *p*.

Where [Resolve *p*](https://www.w3.org/2001/tag/doc/promises-guide#shorthand-manipulating) is accepted shorthand for "queue a task back to the main thread to resolve p".

Please view or discuss this issue at https://github.com/w3c/mediacapture-image/issues/184 using your GitHub account

Received on Wednesday, 14 June 2017 19:35:20 UTC