The way most current implementations work is by having a function which returns a 'deferred': {resolver, promise}.
The deferred concept is a little bit messy, but makes a fair bit of sense. One option would be to avoid calling it a deferred at all in the spec, and just use ES6 terminology:
let {resolver, promise} = defer();
There's also nothing to implementations providing other abstractions, in addition to this one.
The way most current implementations work is by having a function which returns a 'deferred':
{resolver, promise}
.The deferred concept is a little bit messy, but makes a fair bit of sense. One option would be to avoid calling it a deferred at all in the spec, and just use ES6 terminology:
There's also nothing to implementations providing other abstractions, in addition to this one.