Нет явных ошибок в сценарии, который вы опубликовали. Например, эквивалентный тест может выглядеть следующим образом:
alertResult = function(text) {
console.log("Result is: " + text);
}
doRecursive = function(data, callback) {
if(!!data.next) {
doRecursive(data.next, callback);
} else {
callback(data.value);
}
}
var d = { value: 1, next: { value: 2, next: { value: 3 }}};
doRecursive(d, alertResult);
Результат записи - "Result is: 3"
, что и следовало ожидать.
Ошибка в другом месте. Как вы вызываете это в первый раз, какой ответный вызов вы передаете ему (и как он определяется) и что именно делает getYFContent?