For efficiency, Polymer queues dynamic changes that provoke Shady DOM distribution (changes that fill insertion points, e.g. <content>) and template rendering (e.g. `dom-if` and `dom-repeat`) and processes them at microtask timing. In addition, the Custom Elements polyfill processes dynamic dom changes (upgrading elements and calling attached/detached) at microtask timing.
In general, calling `Polymer.dom.flush` provides a guarantee that these tasks complete synchronously. On Thu, Jul 16, 2015 at 7:25 PM, Michael Giuffrida <[email protected]> wrote: > It would be really nice if anyone could provide a more detailed answer to > this and similar questions: It's not clear what operations are supposed to > be synchronous or asynchronous (and when async operations are at task level > vs. microtask level), which affects tests but also some more complicated UI > logic. > > I started a thread last week which didn't get any responses. I would > appreciate even a simple "we make no guarantees" response if that's the > case, because it would help knowing how defensive our code should be. > > Michael > > On Thu, Jul 16, 2015 at 4:02 PM, 'Daniel Freedman' via Polymer < > [email protected]> wrote: > >> Generally you can get away with not using flush. >> >> You may still need flush for testing element lifecycle callbacks in >> polyfilled browsers, or measuring DOM, but I expect very few cornercases >> like that. >> >> On Thu, Jul 16, 2015 at 10:46 AM, <[email protected]> wrote: >> >>> With Polymer 1.0, observers are now evaluated synchronously. If I have >>> an element whose behavior is driven by observers on attributes, and >>> everything appears to work in synchronous tests, is there any reason to >>> call flush()? That is, is it necessary that I call it before/after each >>> test? >>> >>> Follow Polymer on Google+: plus.google.com/107187849809354688692 >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "Polymer" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/polymer-dev/adc4db0a-459d-4abf-ab8f-6453dae62213%40googlegroups.com >>> <https://groups.google.com/d/msgid/polymer-dev/adc4db0a-459d-4abf-ab8f-6453dae62213%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> Follow Polymer on Google+: plus.google.com/107187849809354688692 >> --- >> You received this message because you are subscribed to the Google Groups >> "Polymer" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/polymer-dev/CAAUAVAhtWUNOMEw8Zm2Nq5JVA0Q4ihDEtgPJ4pDjRVqZHk1ENA%40mail.gmail.com >> <https://groups.google.com/d/msgid/polymer-dev/CAAUAVAhtWUNOMEw8Zm2Nq5JVA0Q4ihDEtgPJ4pDjRVqZHk1ENA%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > Follow Polymer on Google+: plus.google.com/107187849809354688692 > --- > You received this message because you are subscribed to the Google Groups > "Polymer" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/polymer-dev/CACi5S_1DeF4B%2BkgPzwpW8rt%3DH1dw%2B2%3D1C_BbGqgdzuD5ZtPpQw%40mail.gmail.com > <https://groups.google.com/d/msgid/polymer-dev/CACi5S_1DeF4B%2BkgPzwpW8rt%3DH1dw%2B2%3D1C_BbGqgdzuD5ZtPpQw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > Follow Polymer on Google+: plus.google.com/107187849809354688692 --- You received this message because you are subscribed to the Google Groups "Polymer" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/polymer-dev/CA%2BrMWZg1Nk7s-%3D%3D79H2gcaaxd7w8rYpdd6k7CAc0sGsWxVEAdw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
