1
jQuery 지연을 사용하는 데 어려움을 겪고 있습니다.jQuery 초기 해결 지연
나는 그러나 각 함수가 반환, 아래에 규정 된 패턴을 사용하여, 함께 체인에 jQuery를 .then
문에 $.ajax
통화를 기능 통화의 숫자를 시도하고 (그래서 다음 계속하는 것은 체인) 아약스 호출이 해결되기 전에 .
function getCurrentYearAbsenceRequestData() {
var dfd = $.Deferred();
var today = moment();
var startOfCurrentHolidayYear = moment($clnt.holidayYearStartDate, "DD MMMM").format("DD/MM/YYYY");
var startDayOfCurrentHolidayYear = moment().dayOfYear(startOfCurrentHolidayYear)
var currentDayOfYear = moment().dayOfYear();
if (moment(today).isBefore(startOfCurrentHolidayYear)) { //checks if holiday year started last year
startOfCurrentHolidayYear = moment(startOfCurrentHolidayYear).subtract(1, "years"); //if so subtract 1 year from start of currently holiday year date
};
console.log("Start of Holiday year is " + startOfCurrentHolidayYear);
var getOrgDataQuery = $apiUrl + "/web/lists/getbytitle('AbsenceRequests')/Items?$select=Id,AssocBranch/Title,DateFrom,DateTo,EmployeeLookup/EmployeeName,EmployeeLookup/Id,AbsenceType/AbsenceTypeShort,ReviewOutcome,TotalDays,AbsenceNotes&$expand=AssocBranch/Title,EmployeeLookup/EmployeeName,AbsenceType/AbsenceTypeShort&$filter=DateFrom ge '" + startOfCurrentHolidayYear + "'";
$.ajax(_cnxRest.getRequest(getOrgDataQuery)) //calls personal library function which formats the parameter - this works OK)
.done(function (r) {
console.log("Get Org data success" + r);
var $absDataCurrentYearData = r.d.results;
$absData.allCurrentYear = $absDataCurrentYearData;
dfd.resolve();
})
.fail(function (err) {
logError(err);
});
};
return dfd.promise();
};
난 이후 그 때는 함수가 진행되기 전에 해결하기 위해 $ 아약스 전화를 걸려과 장소에 관한 몇 가지 지능적인 조언을 기쁘게받을 것이다 : 위라는
// earlier code runs fine to here
})
.then(function (r) {
getCurrentYearAbsenceRequestData(); // calls function which contains a $.ajax request
})
.then(function (r) {
restructureCurrentYearAbsenceData();
});
// further processing of results
기능이 패턴을 따른다 나는 잘못 가고있다.