2014-12-04 126 views
1

我有一个函数返回一个promise。 (在本例中为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 2014-12-04 09:35:41

+0

foo在匿名函数中,然后(匿名)使用这个匿名函数。我尝试在其中检索匿名函数。 – ezain 2014-12-04 09:38:22

回答

2

最简单的方法是命名匿名函数

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

您也可以声明函数分别

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

注意这不会等待任何异步,除非你'返回' – 2014-12-04 11:38:44