Promise dispatch should actually simplify to this in certain common cases. I meant to write up a document describing the typical dispatch optimizations high-performance Promise libraries do, based on my experiences writing https://github.com/cscott/babybird (although Optimization Notes in the README of that package contains the basic details). Assuming the Promise implementation is fast, then Promise#then0(...) should basically give you direct access to the internal `asap`-like dispatcher. --scott
On Mon, Jun 26, 2017 at 8:20 AM, Calvin Metcalf <[email protected]> wrote: > Kris, you're conflating macrotasks and microtasks [1]. This has come up a > couple times before and there have been issues raised by browser > venders[2][3]. > > > 1. https://github.com/YuzuJS/setImmediate#macrotasks-and-microtasks > 2. https://bugzilla.mozilla.org/show_bug.cgi?id=686201 > 3. https://groups.google.com/a/chromium.org/forum/#!msg/ > blink-dev/Hn3GxRLXmR0/XP9xcY_gBPQJ > > On Mon, Jun 26, 2017 at 2:51 AM Kris Siegel <[email protected]> wrote: > >> This seems more like a platform-level feature versus something that needs >> to be part of the ECMAScript standard. Also, keep in mind it's rarely a >> good idea to explicitly call nextTick() in node as it executes the code >> immediately after the current code is finished and before the next, >> scheduled code (this can cause issues with processing I/O if you're doing >> it too frequently). >> >> In a browser you can sorta emulate similar behavior through IE's >> setImmediate(), using postMessage() or even the requestAnimationFrame(). >> Granted none of those are exactly like nextTick() and I wouldn't mind >> seeing something like setImmediate() become more of a standard but this >> isn't for the ECMAScript group. >> >> On Wed, Jun 21, 2017 at 2:10 PM, Isiah Meadows <[email protected]> >> wrote: >> >>> It's a relatively low-level operation, but in performance-sensitive >>> async code and polyfills, there's still a strong need for raw >>> microtask scheduling, at a much lower level than promises. In >>> particular, there's two very frequently used modules providing a >>> wrapper for this specific thing: >>> >>> 1. next-tick: A browser polyfill for Node's `process.nextTick`, with >>> over 2M downloads last month and 88 direct dependents. >>> 2. asap: A microtask scheduler that avoids blocking Node's I/O loop, >>> with over 7M downloads last month and 88 direct dependents. >>> >>> In addition, several libraries like Bluebird have to implement their >>> own wrappers to gain similar functionality without assuming another >>> dependency. >>> >>> Any chance something like Node's `process.nextTick` could be added, >>> maybe something like `Promise.schedule(func, thisArg, ...args)`? >>> >>> ----- >>> >>> Isiah Meadows >>> [email protected] >>> >>> Looking for web consulting? Or a new website? >>> Send me an email and we can get started. >>> www.isiahmeadows.com >>> _______________________________________________ >>> 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 >> > > _______________________________________________ > 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

