I am trying to call synchronous call for getting data count using ajax call.
Here is my Jquery Code:
var baseurl = _spPageContextInfo.webServerRelativeUrl;
console.log(baseurl);
var ItemCount = $.Deferred();
function tilesCount(tilename, count)
{
    var url = baseurl + "/_api/web/lists/getByTitle('policies')/rootFolder/Folders?$expand=ListItemAllFields";
    count = 0;
    $.ajax({
        url: url,
        dataType: 'json',
        success: function(data) {
            $(data.value).each(function (i, folder) {
                count = count + 1;
            });
            console.log("Call 1: " + count)
            ItemCount.resolve(count);
            return count;
        },
        error: function(error){
            console.log("Error: " + JSON.stringify(error));
            ItemCount.reject;
        }
    });
}
$(document).ready(function () {
    var count = tilesCount("");
    $.when(count).then(function(data){
        console.log("Call 2: " + data); 
    });
});
Output:
Call 1: 1
Call 2: undefined
Synchronous call working perfectly, but I am getting data as undefined
 
    