코드를 작성하다가 갑자기 혼란에 빠졌다.
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 |