carbonate а что вы ожидаете? У вас код асинхронный, а результат вы пытаетесь синхронно получить. Как выше уже неоднократно написали, нужно использовать `$.Deferred`, единственно, что добавлю это `$.when` + `then` и код станет завершенным:
function doIt(url) {
return $.post(url).then(function (res) {
var result = '';
var queue = $('table tr', res).map(function () {
var url = $(this).find('a').prop('href');
return $.get(url, function (res) {
result += $('#block', res).text();
});
});
return $.when.apply($, queue).then(function () {
return result;
});
});
}
// Используем
doIt('/x').then(function (result) {
alert(result);
});