I was browsing and stumbled on a strawman that is nearly identical to what I proposed here (mod the extra args handling), just a couple years old:
https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask On Mon, Jun 26, 2017, 13:49 Calvin Metcalf <[email protected]> wrote: > One of the big use cases for process.nextTick is throwing errors outside > the current stack, either to avoid preventing cleanup or to avoid being > caught in try/catch blocks or promise chains so using a promise directly > isn't very useful. This came up in the browserify/webpack shim for > process.nextTick > > On Mon, Jun 26, 2017 at 12:29 PM C. Scott Ananian <[email protected]> > wrote: > >> 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

