non-self referencial cyclical promises?

Bergi a.d.bergi at
Wed Feb 24 19:54:01 UTC 2016

Bradley Meck wrote:
> I was doing some recursive data structure work and ended up with a cyclical
> promise that did not use a direct self reference. It can be reduced down to:
> ```javascript
> var af, a = new Promise(f=>af=f);
> var bf, b = new Promise(f=>bf=f);
> af(b);bf(a); // the problem
> a.then(_=>_) // some env/libs need this to start checking status
> ```
> According to
> it looks like this should cause a recursive and infinite set of
> `EnqueueJob("PromiseJobs",...)`

I fear that's what the standard says, yes. The ES6 spec does too many 
(and in some cases, unreasonably many) `then` calls on promises anyway 
to be followed by an efficient promise implementation.

[Promises/A+]( in contrast says

| Implementations are encouraged, but not required, to detect such
| recursion and reject promise with an informative TypeError as the
| reason.


More information about the es-discuss mailing list