Promises are eager.  That is, they do the work and resolve whether you await 
them or not.  If you want to handle exceptions, you need to call .then and 
provide an error handler, but other than that it's totally ok to not bother 
waiting for a promise.

On 19 Dec 2015, at 22:02, Mat At Bread 
<[email protected]<mailto:[email protected]>> wrote:


Which is what I said, I hope. Use the .then for top-level invitation. Dimitry's 
example wouldn't resolve the Promise

On 19 December 2015 9:24:04 pm Fabrício Matté 
<[email protected]<mailto:[email protected]>> wrote:

@bread I see you are referencing Dmitry's sample, but why do you say it won't 
work? AFAIK async functions return promises, so you don't necessarily need a 
top-level `await`. I believe this (extremely ugly) sample should work:

```js
function f(cb) {
  (async function() {
    // await here
  })().then(v => cb(null, v), cb);
}
```

/fm

On Sat, Dec 19, 2015 at 7:11 PM, 
<[email protected]<mailto:[email protected]>> wrote:
That’s not going to work. The correct form still requires an (illegal) 
top-level await:

await (async function() {
// await here
})();

The easiest way to spawn a top-level async function is:

here.then(function(result){},function(error){}) ;

On 19 December 2015 20:14:44 -00:00, Dmitry Soshnikov 
<[email protected]<mailto:[email protected]>> wrote:


On Saturday, December 19, 2015, Šime Vidas 
<[email protected]<mailto:[email protected]>> wrote:
With block statements + let/const, IIFEs are no longer needed to emulate 
block-scoped variables. That got me thinking, are there other uses of IIFEs, or 
are they no longer needed?
I’ve checked my code and found instances of this pattern:

var foo = (function () {
    var a, b, c; // helper variables
    // some computation
    return /* final value of foo */;
}());
Btw, there is a "do expression" proposal (stage 0) [1] for this type of pattern.
Anything else?

FWIW, one of the still valid use cases is async IIFE, to spawn an async code 
(since there's no yet top-level async/await)

(async function() {
  // await here
})();

Dmitry


_______________________________________________
es-discuss mailing list
[email protected]<mailto:[email protected]>
https://mail.mozilla.org/listinfo/es-discuss


_______________________________________________
es-discuss mailing list
[email protected]<mailto:[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