Я имею дело с этим кодом.Мне нужно добавить еще один Ajax, чтобы получить список элементов базы на первом цикле.Результат неверен, если не записано предупреждение («ПОДОЖДИТЕ ПОДОЖДИТЕ»).
loadRestRequest("/_api/Web/lists/GetByTitle('KSF')/items?$filter=Master eq 94 " ,
function (data) {
$.each(data.d.results, function (idx, val) {
ksfId = val.ID;
//do some stuff
loadRestRequest("/_api/Web/lists/GetByTitle('KPI')/items?$filter=KSF eq " + ksfId,
function (data) {
//do some stuff
});
alert("WAIT WAIT");
});
});
Я дважды вызываю функцию ниже, чтобы получить элементы списка
function loadRestRequest(url, callback) {
var async = true;
var res = null;
if(callback == null)
{
async = false;
callback = function (data) {
res = data.d;
}
}
$.ajax
url: url,
typ({
e: "GET",
async: async,
headers: {
"accept": "application/json;odata=verbose",
},
success: callback,
error: function (error) {
alert(JSON.stringify(error));
}
});
return res;
}
Я погуглил эту проблему и обнаружил, что эти функции не синхронизированы.Вызов функции ожидания или ожидания работает неправильно, поскольку нет точной оценки времени запроса.Я должен работать с $ .Deferred, но я не знаю, как использовать его в моей функции loadRestRequest.мой код работает на sharepoint 2013