Re: Indexed DB Transactions vs. Microtasks

On Thu, 5 Jun 2014, Joshua Bell wrote:
> 
> For case 2, it looks like implementations differ on whether microtasks 
> are run as part of the event dispatch. This seems to be outside the 
> domain of the IDB spec itself, somewhere between DOM and ES. Anyone want 
> to offer an interpretation?

Event dispatch (specifically, the handling of "onsuccess", as opposed to 
addEventListener('success') which is similar but defined in other specs) 
is something that HTML tries to define. Assuming IndexDB defers to HTML's 
definition of "event handler IDL attribute", then you go through the 
"event handler processing algorithm", which calls "jump to a code 
entry-point" which calls "clean up after running a callback" which calls 
"perform a microtask checkpoint" which, once ES and HTML have been made to 
play nice, invokes the promise callbacks, all before the task that fired 
the event handler has returned to the event loop. And once it does return 
to the event loop, the next major thing _it_ does is "perform a microtask 
checkpoint" anyway.

HTH.
-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Thursday, 5 June 2014 20:49:16 UTC