Try:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.12.4.js"></script>
<script type="text/javascript">
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', myfunction);
function myfunction() {
var dialog = SP.UI.ModalDialog.showWaitScreenWithNoClose('Processing...', 'Request is in progress...', 80, 300);
retrieveListItems().done(function (data) {
dialog.close(0);
dialog = null;
//processing your data
alert(data.d.results.length);
});
}
function retrieveListItems() {
var deferred = $.Deferred();
var listName = "MyList2";
var fileCollectionEndpoint = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items";
$.ajax({
url: fileCollectionEndpoint,
type: "Get",
async: false,
headers: {
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose"
},
success: function (data) {
//remove timeout, just for test purpose
setTimeout(function () {
deferred.resolve(data);
}, 3000);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR);
}
});
return deferred.promise();
}
</script>