2014-12-04 4 views
1

У меня есть функция, которая возвращает обещание. (foo в этом примере)JavaScript: рекурсия внутри анонимных функций распознавателя обещания

Я пытаюсь вызвать эту функцию внутри своей функции разрешения, которая была объявлена ​​анонимной.

Я пробовал с this но это не работает.

мой код выглядит следующим образом

var foo = function(boo) { 
    /* .... */ 
    return deferred.promise; 
}; 

var bar = 42; 

foo(bar).then(function() { 
    foo(bar--).then(this); //"this" don't work 
}); 

Что я делаю неправильно?

Благодаря

+0

Вы пытаетесь вызвать 'Foo' или анонимную функцию ? – pablochan

+0

foo внутри анонимной функции, а затем (анонимно) с помощью этой анонимной функции. Я пытаюсь получить анонимную функцию внутри него. – ezain

ответ

2

Самый простой способ назвать анонимной функции

foo(bar).then(function fn() { 
    foo(bar--).then(fn); 
}); 

Вы также можете объявить функцию отдельно

function fn() { 
    foo(bar--).then(fn); 
} 
foo(bar).then(fn); 
+0

Обратите внимание, что это не будет ждать ничего асинхронного, если вы не вернетесь –

Смежные вопросы