@ImagineWorld

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

getData('/sapi/user/getinfo','POST').then(result=>{

        let userinfo=result.data.uinfo;
        let atl=userinfo.atl;
        let option;
        $.each(atl, function(i, item) {
          console.log(item.id); 

         let start_period= tools.timeConverter(item.discount_period_start);
         let end_period=tools.timeConverter(item.discount_period_end);
   
          let tplink='tplink='+item.id;

          getData('/sapi/tariff/get','POST',tplink).then(result=>{
           let tariffss=result.data.tariff;
           $.each(tariffss, function(i,item){
            option+='<option name="">'+item.name+'</option>';
            });
          })
          console.log(option);
           $('.tarif-content').append(template.tarif_part2+item.tariff_name+template.tarif_part3+item.next_tariff_name+template.tarif_part4+start_period+template.tarif_part5+end_period+template.tarif_part7+option+template.tarif_select);
          

          $('.select-tarif-now').click(function(e){
            getData('/sapi/tariff/change','POST',tplink).then(result=>{
              console.log(this.data);
  
            })
          })
        })


      })


console.log(option); - не выводит то, что записывается в неё в цикле, если прописать console.log(option); в рамках запроса или самого цикла, то выводит,а если за пределами запроса, то выводит undefined, типо она пустая и просто задана. Почему?
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
@Zerg89
переменная созданная в функции не видна вне ее исполнения или проще является временной, и и ее надо передать как результат исполнения функции
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@its2easyy
getData асинхронная и выполнится после console.log(option);, поэтому код который работает с option нужно внутрь then перенести
Ответ написан
Ваш ответ на вопрос

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

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