<p dir="ltr"><br>
On Apr 26, 2013 8:33 PM, "Tab Atkins Jr." <<a href="mailto:jackalmage@gmail.com">jackalmage@gmail.com</a>> wrote:<br>
><br>
> On Fri, Apr 26, 2013 at 11:25 AM, Kevin Smith <<a href="mailto:zenparsing@gmail.com">zenparsing@gmail.com</a>> wrote:<br>
> > Actually, I may have gotten it terribly wrong (apologies).  In my prototype<br>
> > implementation, the following:<br>
> ><br>
> >     Future.accept(Future.resolve(1)).then(value => {<br>
> ><br>
> >         console.log(value !== 1);<br>
> >         return Future.accept(Future.resolve(1));<br>
> ><br>
> >     }).then(value => {<br>
> ><br>
> >         console.log(value === 1);<br>
> >     });<br>
> ><br>
> > logs<br>
> ><br>
> > - true<br>
> > - true<br>
> ><br>
> > Is that what it should be doing, according to the DOM spec?  Anne, Alex?<br>
><br>
> No, it should be "true", then "false".<br>
><br>
> Future.resolve(1) returns a Future<1>.<br>
><br>
> Future.accept(Future.resolve(1)) returns Future<Future<1>>.<br></p>
<p dir="ltr">This would all be easier to discuss if you weren't writing using invented methods.</p>
<p dir="ltr">> If you call .then() on a Future<Future<1>>, the callback receives a<br>
> Future<1> as its argument.<br>
><br>
> If you return a Future<Future<1>> from the callback, the chained<br>
> future adopts its state, which means that the chained future is now<br>
> also a Future<Future<1>>.<br>
><br>
> So, calling .then() on the chained future will give you the same<br>
> result - the callback receives a Future<1> as its argument.<br>
><br>
> (Using a mixture of Future.accept and Future.resolve in the way that<br>
> you have makes things more confusing than necessary.  When called on a<br>
> plain value, the two functions are identical.  They only act<br>
> differently when you call them on a future.)<br>
><br>
> ~TJ<br>
> _______________________________________________<br>
> es-discuss mailing list<br>
> <a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
> <a href="https://mail.mozilla.org/listinfo/es-discuss">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</p>