@lemonlimelike

Почему не изменяется переменная?

Всем привет. Почему не изменяется переменная? Смотрел пару примеров кода, так там также делали и у них все работало, а тут не работает, почему? после axios вывожу что в count, так в ней всегда лежит Значение 24, почему оно не меняется? 5bf9b855e24df280967217.png

И еще один вопрос, почему такая запись не правильная?
5bf9b883e9d95847631219.png

Код:
window.onscroll = function(){
	var scrollTop=document.documentElement.scrollTop;
	var scrollHeight=document.documentElement.scrollHeight;
    var clientHeight=document.documentElement.clientHeight;
    var result = scrollHeight - clientHeight;

    if(scrollTop == result){
    	var count = 24;
    	axios.post('api/ajax',{
    		count: count
    	}).then((response) =>{
    		count = count + 24;
    		var html = '';
    		var result = document.querySelector('.box__content');
    		response.data.films.forEach((item)=>{
    			html += '<div class="content">'+
		    				'<a href="movie/'+item.name_eu+'/'+item.type+'/'+item.id+'" title="'+item.name_ru+'">'+
		    					'<div class="content__img">'+
		    						'<img src="'+item.thumbnail+'" alt="'+item.name_ru+'">'+
		    					'</div>'+
		    					'<div class="content__box">'+
		    						'<div class="content__box__name">'+
			    						'<b>'+item.name_ru+'</b>'+
			    						'/'+
			    						'<i>'+item.name_eu+'</i>'+
			    					'</div>'+
			    					'<div class="content__box__down">'+
			    						'<div class="content__box__down__right">'+
			    							'просмотров: '+item.views+''+
			    						'</div>'+
			    						'<div class="content__box__down__left">'+
			    							'рейтинг: '+item.rating+''+
			    						'</div>'+
			    					'</div>'+
			    				'</div>'+
			    			'</a>'+
			    		'</div>';
    		});
    		result.innerHTML += html;
    	}).catch((error) =>{
    		console.log(error.response);
    	});
    	console.log(count)
    }
}
  • Вопрос задан
  • 261 просмотр
Решения вопроса 1
potapchino
@potapchino
>так в ней всегда лежит Значение 24

у вас код асинхронный, вы выводите переменную в консоль раньше, чем ее изменяете в коллбэке аксиоса. можно заюзать замыкание:
window.onscroll = (function(){
  var count = 24;
  
  return function() {
    var scrollTop=document.documentEle...
    ...
    ...
    ...
  }
})();


>почему такая запись не правильная?

правильная
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы