Thank you for the suggestion, but there is no reason to use a promise here. The element queries are blocking operations, because they are none I/O. This means the operation is already sync. To use a promise on a sync operation to make it a sync operation is unnecessary code.
On Saturday, January 2, 2016 at 4:29:19 AM UTC-6, David Waterman wrote: > > Just thought I'd mention this article on promises...it mentions their use > for synchronous stuff too (mixing them), so thought it might be of interest > : > < > http://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html?utm_source=javascriptweekly&utm_medium=email > > > > Max. > > On Sat, 2 Jan 2016, 06:27 Darin Hensley <[email protected] <javascript:>> > wrote: > >> Ok, that issue just hit me again so here it is with the details: >> >> https://github.com/Polymer/polymer/issues/3262 >> >> >> On Wednesday, December 30, 2015 at 5:31:51 AM UTC-6, David Waterman wrote: >> >>> Did you file a bug? >>> >>> Thanks, >>> >>> Max. >>> >>> On Sun, 27 Dec 2015 at 21:33 Darin Hensley <[email protected]> wrote: >>> >> Thanks, I originally did this but I realized using a promise is a bad >>>> fit. The reason being, the queries used are blocking since they are non >>>> I/O, which means sync. I am still implementing a function that is checking >>>> and redoing if so, but without a promise. >>>> >>>> However, I feel that this might be a bug in polymer because when dom >>>> manipulation js script is placed last in chrome, then all elements are >>>> garuanteed to be ready. This is from documentation(in the 0.5 to 1.0 >>>> migration docs). I will file a bug tonight. >>>> >>>> >>>> >>>> On Sunday, December 27, 2015 at 9:27:48 PM UTC, David Waterman wrote: >>>> >>>>> I just thought that my approach to this issue would be to create a >>>>> promise for each event (each event handler resolves its promise), and >>>>> then >>>>> do Promise.all(). If you do this, you can test for native support of web >>>>> components which means 'webcomponentsready' doesn't fire at all[0], and >>>>> resolve it immediately, and your code will still work when Polymer change >>>>> to using native web components... >>>>> >>>>> Max. >>>>> [0] < >>>>> https://www.polymer-project.org/1.0/docs/migration.html#polymer-ready> >>>>> >>>>> On Sun, 27 Dec 2015 at 03:44 Darin Hensley <[email protected]> >>>>> wrote: >>>>> >>>> It's been working for many refreshes...but it just happened again... I >>>>>> got 'Uncaught TypeError: Cannot read property 'addEventListener' of >>>>>> undefined' for 'panel.addEventListener("content-scroll", moveTitle);'. >>>>>> This >>>>>> is in chrome where the initialize.js script is loaded last in the >>>>>> index.html. >>>>>> >>>>>> function makeGlobalElements() { >>>>>> //elements is not routing list, routing list is elementList >>>>>> >>>>>> panel = Polymer.dom(document.rootElement).querySelector( >>>>>> 'paper-header-panel[main]'); >>>>>> rippleElement = Polymer.dom(document.rootElement).querySelector( >>>>>> '#ripple-element'); >>>>>> toolbar = Polymer.dom(document.rootElement).querySelector( >>>>>> '#main-toolbar'); >>>>>> headerName = Polymer.dom(document.rootElement).querySelector( >>>>>> '#name-title'); >>>>>> drawer = Polymer.dom(document.rootElement).querySelector( >>>>>> 'paper-drawer-panel'); >>>>>> mainPanelContent = Polymer.dom(document.rootElement).querySelector( >>>>>> '#mainPanelContent'); >>>>>> >>>>>> }; >>>>>> >>>>>> >>>>>> function attatchListeners() { >>>>>> panel.addEventListener("content-scroll", moveTitle); >>>>>> >>>>>> .... >>>>>> >>>>>> >>>>>> function initializeYay() { >>>>>> makeGlobalElements(); >>>>>> attatchListeners(); >>>>>> setUpRoutes(); >>>>>> removeSplash(); >>>>>> //fetchPdfjs(); >>>>>> } >>>>>> >>>>>> if (!webComponentsSupported) { >>>>>> document.addEventListener('WebComponentsReady', initializeYay); >>>>>> } else { >>>>>> initializeYay(); >>>>>> page('/portfolio'); >>>>>> } >>>>>> >>>>>> >>>>>> >>>>>> ---- >>>>>> >>>>>> On Friday, December 25, 2015 at 9:37:55 AM UTC-6, Eric Bidelman wrote: >>>>>> >>>>>>> You can attach listeners to elements before they're upgraded and >>>>>>> ready. That's a nice property of custom elements and DOM events. >>>>>>> Waiting to >>>>>>> attach until WCR means you may miss the event the first time it's fired. >>>>>>> >>>>>>> On Thu, Dec 24, 2015, 10:32 PM Darin Hensley <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>> I am having issues(not consistent....random) where the elements are >>>>>>>> not ready when I attach the listeners. I placed a setTimeout to try >>>>>>>> and >>>>>>>> compensate the random race condition. Should these elements be ready >>>>>>>> during >>>>>>>> the time of their queries when WebComponentsReady fires or with the >>>>>>>> initialize.js script placed last at the bottom of the index.html? >>>>>>>> function makeGlobalElements() { >>>>>>>> //elements is not routing list, routing list is elementList >>>>>>>> panel = document.querySelector('paper-header-panel[main]'); >>>>>>>> rippleElement = document.getElementById('ripple-element'); >>>>>>>> toolbar = document.querySelector('#main-toolbar'); >>>>>>>> headerName = document.getElementById('name-title'); >>>>>>>> drawer = document.querySelector('paper-drawer-panel'); >>>>>>>> mainPanelContent = document.getElementById('mainPanelContent'); >>>>>>>> }; >>>>>>>> >>>>>>>> function attatchListeners() { >>>>>>>> panel.addEventListener("content-scroll", moveTitle); >>>>>>>> ['webkitAnimationEnd', 'animationend'] >>>>>>>> .forEach(function(vendor) { >>>>>>>> mainPanelContent.addEventListener(vendor, function >>>>>>>> (animationEvent) { >>>>>>>> if (animationEvent.animationName === "slide-down") { >>>>>>>> afterSlideDown.runStack(); >>>>>>>> mainPanelContent.classList.remove('slide-down-now'); >>>>>>>> } >>>>>>>> }); >>>>>>>> headerName.addEventListener(vendor, function() { >>>>>>>> headerName.classList.remove('fade-title'); >>>>>>>> }); >>>>>>>> }); >>>>>>>> }; >>>>>>>> >>>>>>>> >>>>>>>> function initializeYay() { >>>>>>>> makeGlobalElements(); >>>>>>>> setTimeout(attatchListeners, 500); >>>>>>>> setUpRoutes(); >>>>>>>> removeSplash(); >>>>>>>> //fetchPdfjs(); >>>>>>>> } >>>>>>>> >>>>>>>> if (!webComponentsSupported) { >>>>>>>> document.addEventListener('WebComponentsReady', initializeYay); >>>>>>>> } else { >>>>>>>> initializeYay(); >>>>>>>> page('/portfolio'); >>>>>>>> } >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Tuesday, December 22, 2015 at 9:44:05 PM UTC-6, Darin Hensley >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> stack overflow post >>>>>>>>> <http://stackoverflow.com/questions/34428255/domcontentloaded-never-fires-can-not-use-webcomponentsready> >>>>>>>>> >>>>>>>>> >>>>>>>>> Using polymer 1.2.3, >>>>>>>>> >>>>>>>>> >>>>>>>>> In linux firefox 42.0, where the polyfill(webcomponents-lite.js) >>>>>>>>> is used: >>>>>>>>> >>>>>>>>> >>>>>>>>> `WebComponentsReady` fires to soon, because I `querySelect` and >>>>>>>>> `getElementById` elements that do not exist yet in `initialize`. >>>>>>>>> >>>>>>>>> >>>>>>>>> window.addEventListener('WebComponentsReady', function() { >>>>>>>>> initialize >>>>>>>>> .then(attatchListeners) >>>>>>>>> >>>>>>>>> >>>>>>>>> So I am using `DOMContentLoaded` but it never fires: >>>>>>>>> >>>>>>>>> document.addEventListener('DOMContentLoaded', function() { >>>>>>>>> initialize >>>>>>>>> .then(attatchListeners) >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Any ideas on how to make initialize run when the elements are >>>>>>>>> available for `querySelect()`? >>>>>>>>> >>>>>>>>> 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/13dcb312-f0a9-44d5-bf55-29be4cd38441%40googlegroups.com >>>>>>>> >>>>>>>> <https://groups.google.com/d/msgid/polymer-dev/13dcb312-f0a9-44d5-bf55-29be4cd38441%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/ecbf652f-4130-4118-8a29-30de8c98ff24%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/polymer-dev/ecbf652f-4130-4118-8a29-30de8c98ff24%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/25ca6f26-e689-4829-9dbd-5a87c2c129dc%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/polymer-dev/25ca6f26-e689-4829-9dbd-5a87c2c129dc%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] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/polymer-dev/144ec899-6d1d-4d8b-93f3-b9485115aaf0%40googlegroups.com >> >> <https://groups.google.com/d/msgid/polymer-dev/144ec899-6d1d-4d8b-93f3-b9485115aaf0%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/5a003271-104f-4c23-9440-124ba4565997%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
