JavaScript:匿名promise解析器函数内的递归

时间:2014-12-04 09:33:45

标签: javascript recursion promise

我有一个返回承诺的函数。 (在这个例子中为foo)

我尝试在声明为匿名的resolve函数中调用此函数。

我尝试使用 this ,但这不起作用。

我的代码看起来像这样

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

var bar = 42;

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

我做错了什么?

由于

1 个答案:

答案 0 :(得分:2)

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

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

您也可以单独声明该功能

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