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.

Reply via email to