私はこれを行うためにさまざまな方法を試しました。
以下のコードのように、私は.each
の反復が完了した後にコードを実行しようとしました。各ループが完了した後に実行するコード
function test(){
var iterate = $.each(ohrArray, function(i, val){
var ohrID = ohrArray[i];
var folderUrl = 'EFMSEmployeeDocumentList' + "/" + locationFolder;
var url = _spPageContextInfo.webServerRelativeUrl + "/_api/Web/GetFolderByServerRelativeUrl('" + folderUrl + "')?$expand=Files";
$.getJSON(url,function(data,status,xhr){
for(var i = 0; i < data.Files.length;i++){
modifiedDate= new Date(data.Files[i].TimeLastModified);
if(documentTitle == ""){
showData(ohrID ,data.Files[i].Title,data.Files[i].ServerRelativeUrl,modifiedDate);
countItems++;
}else{
if(documentTitle == data.Files[i].Title)
countItems++;
showData(ohrID ,data.Files[i].Title,data.Files[i].ServerRelativeUrl,modifiedDate);
}
}
}
}).complete(function(){
$('#tblCustomListData').dataTable({
paging: true,
searching: true,
bDestroy: true,
"iDisplayLength": 5,
"lengthMenu": [5,10, 25, 50, 100]
});
if(countItems == 0){
alert("No Files Exists");
$("#divCustomListData").hide();
}
});
}
});
$.when(iterate)
.then(function(iterate){
if(countItems == 0){
alert("No Files Exists");
}
});
}
はまだデバッグ中に私は.eachが完了する前に.then
のコードが実行されていることを参照してください。
他に何ができますか?
2番目の 'getJSON'リクエストが最初の' getJSON'リクエストより速い応答を送ることができるので、 – KumarV