Ваша функция возвращает обещание, и вы должны разрешить это обещание, прежде чем сможете получить данные
Также используется ненужное $.Deferred
, поскольку getData()
возвращает обещание
Должно быть что-то вроде:
function commentCount(id) {
var url ='....';
// return the getData promise
return getData(url).then(function(data) {
// return the count to next `then()` in chain
return data.d.results.length
})
}
commentCount(someId).then(function(count){
// do stuff with your html here
var str ='<div> Count:' + count + '</div>';
})