아래와 같이 for in loop문 안에 axboot.promise()문을 사용하려고 합니다.
그런데 실행시점?의 문제로 axboot.promise()문 안에 있는 gridData01[i]가
마지막 i의 데이터를 가져가게 됩니다.
axboot.promise()문 안에서 원하는 i의 값을 가져가게 하려면 어찌해야 할까요?
i를 넘겨주는 방법이 있는지 문의 드립니다.
감사합니다.
var gridData01 = caller.gridView01.getData("selected");
for(var i in gridData01) {
var mailTo = [];
var model = {};
var mailData = {};
axboot.promise()
.then(function (ok, fail, data) {
axboot.ajax({
type: "GET",
url: "/api/v1/projectuser",
data: {projectNumber: gridData01[i].projectNumber},
callback: function (res) {
res.list.forEach(function (n) {
if (n.deptCd == "A0000"){
mailTo.push(n.email);
}
});
model = {
projectNumber: gridData01[i].projectNumber,
projectName: gridData01[i].projectName,
};
mailData = {
mailFrom: SCRIPT_SESSION.userCd + "@naver.com",
mailTo: mailTo,
mailSubject: gridData01[i].projectNumber + " 알림",
templateName: "schmail.vm",
model: model
};
ok(res);
}
});
})
.then(function (ok) {
console.log(mailData);
})
}