Ajax - for 반복문 제어 안되는 현상

2024. 2. 16. 17:43·Lang/javascript

코드를 작성하다가 갑자기 혼란에 빠졌다.

       for (i=0; i<new_word_arr.length; i++) {

            k_title = new_word_arr[i].k_title;
            // console.log('idx : ', k_title);

            $.ajax({
                url: "./Papagoapi.php",
                type: "post",
                traditional: true,  // ajax 배열 넘기기 옵션!
                // data: {"k_title" : new_word_arr[i].k_title},
                data: {"k_title" : k_title},
                // dataType: "json",
                success: function (data) {

                    // spinner-grow
                    let parseData = JSON.parse(data);
                    // console.log(parseData);
                    let tranText = parseData.message.result.translatedText;
                    // console.log(`i : ${i}`);
                    new_word_arr[i].e_title = tranText;
                    new_word_arr[i].idx     = i;

                    getSubStrRes(new_word_arr[i], i);
                   
                },
                error:function(request,status,error){
                    alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
                },
            
            });
        }

success 안에서 i 돌리려고 하는데 생각해보니까 그렇게 할 수가 없는거다.

그래서 저거때문에 한 3일정도를 고민하면서 진짜 이방법 저방법 다해보다가

문득 생각난게 async였다.

       for (i=0; i<new_word_arr.length; i++) {

            k_title = new_word_arr[i].k_title;
            // console.log('idx : ', k_title);

            $.ajax({
                url: "./Papagoapi.php",
                type: "post",
                traditional: true,  // ajax 배열 넘기기 옵션!
                // data: {"k_title" : new_word_arr[i].k_title},
                data: {"k_title" : k_title},
                // dataType: "json",
                success: function (data) {

                    // spinner-grow
                    let parseData = JSON.parse(data);
                    // console.log(parseData);
                    let tranText = parseData.message.result.translatedText;
                    // console.log(`i : ${i}`);
                    new_word_arr[i].e_title = tranText;
                    new_word_arr[i].idx     = i;

                    getSubStrRes(new_word_arr[i], i);
                   
                },
                error:function(request,status,error){
                    alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
                },
                async: false
            });
        }

비동기처리를 그냥 false로 바꿔버리면 i값이 차례대로 나오지 않을까.. 

해서 해봤더니 정상적으로 나오더라 

진짜 방법을 찾아서 너무 기쁘다.

저작자표시 비영리

'Lang > javascript' 카테고리의 다른 글

json parse 객체로 변환 안되었던 문제  (0) 2024.02.13
Ajax - unexpected non-whitespace character after json  (1) 2024.02.07
'Lang/javascript' 카테고리의 다른 글
  • json parse 객체로 변환 안되었던 문제
  • Ajax - unexpected non-whitespace character after json
ssnong
ssnong
캠핑 맛집 여행 윈도우 리눅스 PHP DB 등 기록 공간입니다
  • ssnong
    호슐랭
    ssnong
  • 전체
    오늘
    어제
    • 분류 전체보기 (42)
      • Linux (21)
        • ubuntu (4)
        • Rocky 8.10 (16)
      • Windows (5)
      • git (3)
      • Lang (3)
        • javascript (3)
        • PHP (0)
      • Database (3)
        • MySQL8.0 (2)
        • MariaDB (1)
        • PostgreSQL(17.2) (0)
      • AWS (1)
      • ERROR! (4)
  • 링크

    • 일상은 여기서!
  • 공지사항

  • 인기 글

  • 태그

    git pull
    리눅스 nftables
    ssh 접속
    linux nft
    pg_hba.conf 설정
    rocky nftables
    rocky
    리눅스
    linux postgresql설치
    centos nftables
    리눅스 nft
    nftables
    git push
    nginx php 소켓통신
    hyper-v vm 생성
    Linux
    rocky 8 postgresql 설치
    postgresql.conf 설정
    rocky postgresql설치
    linux nftables
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
ssnong
Ajax - for 반복문 제어 안되는 현상
상단으로

티스토리툴바