Microtask scheduling

Calvin Metcalf calvin.metcalf at gmail.com
Mon Jun 26 12:20:13 UTC 2017

Kris, you're conflating macrotasks and microtasks [1]. This has come up a
couple times before and there have been issues raised by browser

1. https://github.com/YuzuJS/setImmediate#macrotasks-and-microtasks
2. https://bugzilla.mozilla.org/show_bug.cgi?id=686201

On Mon, Jun 26, 2017 at 2:51 AM Kris Siegel <krissiegel at gmail.com> 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 <isiahmeadows at gmail.com>
> 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
>> me at isiahmeadows.com
>> Looking for web consulting? Or a new website?
>> Send me an email and we can get started.
>> www.isiahmeadows.com
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20170626/3c732af8/attachment.html>

More information about the es-discuss mailing list