DigitalMag

confuse with homonymous variables defined with var inside promise and defined by let outside

Nov 8th, 2020 (edited)
521
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     function comments_upload(event){
  2.  
  3.         let subcommentsHandler = event.currentTarget;  // event.target; // .sub_comments__handler
  4.         // alert(event.target.className)
  5.         let target = event.target;
  6.  
  7.         let sub_comments = subcommentsHandler.parentElement;
  8.         let comment_container = sub_comments.previousElementSibling;
  9.         let comment__id = comment_container.id.split('__')[1];          // target_id
  10.  
  11.         let last_subcomment = subcommentsHandler.previousElementSibling;
  12.         if (last_subcomment.className == 'sub_comments')  // для общих комментариев
  13.         {            
  14.             last_subcomment = last_subcomment.previousElementSibling;
  15.         }
  16.        
  17.         var last_subcomment__id = last_subcomment.id.split('__')[1];    
  18.  
  19.         if (!Number.parseInt(last_subcomment__id)) {
  20.  
  21.             // это прелодаер уже работает. Удаляем его и запускаем новый:
  22.             last_subcomment.parentElement.removeChild(last_subcomment);
  23.             last_subcomment = subcommentsHandler.previousElementSibling;
  24.             last_subcomment__id = last_subcomment.id.split('__')[1];              
  25.         }
  26.  
  27.         focusImitate(target);
  28.  
  29.         let waitContainer = vom.create('div', {
  30.             id: 'await__container'
  31.         }).styles({
  32.             position: 'relative',
  33.             transition: '0.7s',
  34.             height: '0',
  35.             visibility: 'visible',
  36.         })                          
  37.         .tie(subcommentsHandler).styles({
  38.             height: '5em'
  39.         }, true);//*/
  40.        
  41.         let awaiting = Awaiter.Start({
  42.             waitElem: waitContainer,
  43.             blocks_amount: 3
  44.         })
  45.                
  46.  
  47.         var restCounter = subcommentsHandler.querySelector('.sub_comments_count');
  48.         let persRest = subcommentsHandler.querySelector('.own_subcomments_count');
  49.  
  50.         let restCounterTypes = ['.sub_comments_count', '.own_subcomments_count']
  51.  
  52.         let personal = Number(['mine__upload', 'sub_comments__handler'].indexOf(target.className) >= 0);
  53.         fetch('{% url "comments_upload" %}' + vom.encode({
  54.             // target_type: target_type,
  55.             target: comment__id,
  56.             last_comment: last_subcomment__id,
  57.             personal: personal
  58.         }))
  59.         .then(resp => resp.text())
  60.         .then(r => {
  61.            
  62.             // alert(r)
  63.             r = JSON.parse(r);      
  64.             awaiting.stop();
  65.             waitContainer.parentElement.removeChild(waitContainer);
  66.             subcommentsHandler.insertAdjacentHTML('beforebegin', r.comments);            
  67.  
  68.             // если это подкомментарии
  69.             if (restCounter){
  70.                 let rest_amount = restCounter.innerText - r.rest;  
  71.                 if (rest_amount > 0)   {
  72.                     restCounter.innerText = restCounter.innerText - r.rest;
  73.                     if (persRest || authUser){                            
  74.                         persRest.innerText = persRest.innerText - r.pers_rest;
  75.                     }//*/
  76.                 }
  77.                 else subcommentsHandler.parentElement.removeChild(subcommentsHandler);
  78.             }
  79.             // если рутовые комментарии
  80.             else{
  81.                                
  82.                 if ( event.target.className != 'personal__more_comments'){
  83.                     var restCounter = target;
  84.                     var persRest = target.nextElementSibling;
  85.                 }
  86.                 else{
  87.                     var persRest = target;
  88.                     var restCounter = target.previousElementSibling;                        
  89.                 }
  90.  
  91.                 let rest_amount = restCounter.innerText.match(/\d+/) - r.rest;
  92.                 if (rest_amount > 0){
  93.  
  94.                     restCounter.innerText = restCounter.innerText.replace(/\d+/, match => rest_amount);                    
  95.  
  96.                     if (authUser){
  97.                         // if all comments clicked:
  98.                         persRest.innerText = persRest.innerText.replace(/\d+/, match => match - r.pers_rest);                        
  99.                     }  
  100.                     else{
  101.  
  102.                     }                
  103.                 }
  104.                 else subcommentsHandler.parentElement.removeChild(subcommentsHandler);                
  105.             }
  106.  
  107.         })
  108.         // .catch(error => alert(error));
  109.  
  110.  
  111.         /*
  112.         let awaiting = new Awaiter();
  113.         awaiting.start(null, {
  114.  
  115.         }); //*/
  116.         // awaiter.start();  // waitContainer
  117.     }
  118.  
  119.  
Add Comment
Please, Sign In to add comment