for문 안에서 axboot.promise() 사용시 변수 문제

아래와 같이 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);
  })
}