Blondinka, а что мешает повесить функцию, которая находится в глобальной области видимости? При правильном подходе тут никакие promise не нужны.
function getJSONData(jsonFile) {
//Работаем с данными
libApp.displayBooksList();
};
var libApp = {
getData: function() {
$.getJSON('authors.json', getJSONData);
},
displayBooksList: function() {
libApp.getData();
alert(jsonFile[4].name);
}
};
Да и вообще, такие вещи нужно делать "классом".