- From: jan-ivar via GitHub <sysbot+gh@w3.org>
- Date: Sat, 30 May 2015 00:21:51 +0000
- To: public-media-capture-logs@w3.org
> First, a natural mapping to old-style callback APIs throwing exceptions is for promise-based APIs to return a rejected promise. Is the significance of returning an "already rejected promise" that it's immediately observable in the JS debugger? If so then I think I'm coming around. I think the point you're making here is that 3.2. amounts to trivial argument validation not entirely unlike what WebIDL binding code performs automatically if passed `1` instead of `{}` (returning an already-rejected promise with `TypeError`). E.g. a future version of WebIDL may even grow a way to express [AtLeastOneMemberPresent] or some extended attribute like that, in which case we'd wish we'd made 3.2. synchronous. In hindsight, we should perhaps even have considered `TypeError` instead of `NotSupportedError`, since the latter is somehwat misleading. Yes `{ lasers: true }` resulting in `NotSupportedError` sounds good, but `{ lasers: true, audio: true }` succeeds without error. > Second, is there any good reason to implement step 3.2 asynchronously? As @adam-be mentioned, I think it moved to stay with the structure of the algorithm, to keep the number of steps low, which has some value. But the "go to step x" pattern seemed more of a win with the old callbacks than with the new less verbose "reject p" language. Maybe it's time to rethink that. -- GitHub Notif of comment by jan-ivar See https://github.com/w3c/mediacapture-main/issues/174#issuecomment-106966303
Received on Saturday, 30 May 2015 00:21:53 UTC