The iteration protocol has a boolean data property `.done` - I don't know
if anyone ever suggested some kind of `isDone()` method for that, and I
think the iteration protocol sets a precedent of the "tag" on the object
being a primitive.

On Fri, Apr 17, 2020 at 7:25 PM Felipe Gasper <[email protected]>
wrote:

> Hello,
>
>         If it’s not too awkward of a question to ask: were object methods
> rather than string comparison considered for Promise.allSettled()?
>
> For example, if I write this:
>
> -----
> Promise.allSettled(promises).then( results => {
>     results.forEach( r => {
>         if (r.status === "rejectd") {
>             // Failure …
>         }
>         else {
>             // Success!
>         }
>     } );
> } );
> -----
>
> … the code won’t complain about the typo but instead just “do the wrong
> thing”.
>
> But, if the way to parse allSettled()’s resolution were object methods
> instead, it could be this:
>
> -----
> Promise.allSettled(promises).then( results => {
>     results.forEach( r => {
>         if (r.isRejectd()) {
>             // Failure …
>         }
>         else {
>             // Success!
>         }
>     } );
> } );
> -----
>
> … which will usefully cause an exception/rejection that pinpoints the
> problem in my code.
>
>         Was this pattern perhaps considered and rejected? Or is there some
> liability to the object methods relative to the string comparison that I’m
> not seeing? If so, what was/is the rationale there?
>
>         Thank you for your time!
>
> cheers,
> -Felipe Gasper
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to