2014-12-04 125 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