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

Reply via email to