Re: [DOM Futures] Is there a typo in future wrapper callback?

On 15/05/13 11:37 PM, Sean Hogan wrote:
> (Posting this again because my copy-and-paste inserted hyperlinks the 
> first time)
>
> I'm perplexed by the second step of future wrapper callbacks:
>
> Set callback's `callback this value` to resolver's associated future.
>
> Assuming this results in the equivalent of:
>
>     callback.call(future, value)
>
> then I can't work out the purpose.
> Is there a use for calling `future.then()`, etc inside the callback?
>
> There is also a potential failure mode in the unlikely case that the 
> callback returns `this`, that is, returns the current future object. 
> The result would be the following:
>
>     future.then(function() { return this; }); // returns future
>
>     run the associated resolver's resolve() with future
>
>     future has a `then` method so it is called with callbacks that 
> would run future's resolve and reject algorithms
>
>     now future is still pending until those callbacks get called, but 
> they won't get called until future is resolved. Obviously this stalls 
> permanently.
>
> Again this scenario is unlikely, but it is another indicator to me 
> that the spec is wrong (has a typo?)


In addition to the potential failure mode, *and* the lack of use-cases 
for this setting, the [DOMPromises 
polyfill](https://github.com/slightlyoff/Promises/blob/master/polyfill/src/Promise.js) 
also doesn't bind the callback to the associated future/promise (or 
anything for that matter).

Is / was there a justification for this step?

Sean

Received on Monday, 17 June 2013 00:34:28 UTC