<div dir="ltr">On Tue, Jun 18, 2013 at 8:11 PM, Domenic Denicola <span dir="ltr"><<a href="mailto:domenic@domenicdenicola.com" target="_blank">domenic@domenicdenicola.com</a>></span> wrote:<br><div class="gmail_extra">
<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Mark S. Miller [mailto:<a href="mailto:erights@google.com">erights@google.com</a>]<br>
<div class="im"><br>
> I don't understand this. I am onboard with `console.unhandledRejection`/`console.rejectionHandled` and all that for better logging, and with using WeakRef notification to improve the logging yet further. But I don't see how any of this can substitute for the need that .done() serves. I think we will still need .done() in ES7 promises.<br>

<br>
</div>While I think I see what you're getting at,</blockquote><div><br></div><div style>What do you think I'm getting at? ;)</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  let me play devil's advocate for a bit to draw this out more clearly. Using the sample code from <a href="https://github.com/promises-aplus/unhandled-rejections-spec/issues/1" target="_blank">https://github.com/promises-aplus/unhandled-rejections-spec/issues/1</a>:<br>

<br>
```js<br>
var rejectPromise;<br>
var promise = new Promise((resolve, reject) => rejectPromise = reject);<br>
<br>
promise.then(() => console.log("I only attached a handler for fulfillment"));<br>
// All is OK (A)<br>
<br>
rejectPromise(promise, new Error("who handles me?"));<br>
// Nobody sees the error! Oh no, maybe we should crash here? (B)<br>
<br>
setTimeout(function () {<br>
    promise.then(undefined, (err) =>console.error("I got it!", err));<br>
    // But if we crashed there, then how would this code ever get run? (C)<br>
}, 5000);<br>
```<br>
<br>
Using a `done`-less promise implementation with a unhandled rejections console, we have the flow that:<br>
<br>
1. At line (A), all is fine, and the unhandled rejections console is empty.<br>
2. At line (B), the unhandled rejections console contains `Errror: "who handles me?"`. This remains true for the next five seconds.<br>
3. At line (C), after five seconds have passed, the unhandled rejections console becomes yet again empty.<br>
<br>
This seems to neatly solve the problem without `done`, at least in my devil's-advocate world. Where's the problem? :)<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>    Cheers,<br>    --MarkM
</div></div>