- From: Sean Hogan <shogun70@westnet.com.au>
- Date: Tue, 14 May 2013 13:12:28 +1000
- To: David Bruant <bruant.d@gmail.com>
- CC: public-script-coord@w3.org
Hi David, Thanks for the links. I tried to read all the Future related comments on this mailing list and the W3 DOM list and didn't see these issues raised, though I thought it likely they were items of discussion somewhere. My responses are inline. On 11/05/13 5:02 AM, David Bruant wrote: > Hi Sean, > > Answering to the part I have an answer to. > > Le 08/05/2013 02:27, Sean Hogan a écrit : >> 3. The `catch` method throws an "Unexpected identifier" error in >> older browsers, including IE6-IE8. > ['catch'] is the answer for the time older browser matters (which > depends on people's requirements) [1] > >> I saw one library provided `fail` as an alternative to `catch`. > This been discussed early [2]. I prefer "fail" too, but don't care > that much as long as there is something. > Those discussions don't address the fact that `catch` is also a misleading name. >> 6. I can't work out why a Future wouldn't provide (read-only) access >> to `state` and `result`. If they were present in the API I can't >> imagine anyone asking for them to be removed. > For context, see [3]. > Fair enough. >> 7. The `done` method definitions seem to have a couple of typos. >> In one place it returns `void`, in another it returns a new Future. I >> believe it is supposed to return the context Future so that `done` >> can be chained. I see that the inconsistency in the spec has been fixed. I assumed chaining would be allowed since future.done().done() would be the same as future.done(); future.done() I am neither for nor against chaining `done` - it is a non-issue anyway. > The purpose of done is to avoid a to chain so that uncaught errors > aren't propagated without being caught. When you call .done and the > last promise had an error, the devtools can tell you so (telling you > before .done could be confusing as the error might be later caught) > `.done()` **does not** provide a guarantee against silent failure. It **allows** you to manually throw the error without it being prevented from reaching the console, like so: future.done(null, function(e) { throw e; }) Maybe I'm bike-shedding - I need to convert some real-world code to use DOM Futures. Sean
Received on Tuesday, 14 May 2013 03:14:39 UTC