【问题标题】:JavaScript: recursion inside anonymous promise resolver functionsJavaScript:匿名承诺解析器函数中的递归
【发布时间】:2014-12-04 17:40:37
【问题描述】:

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

我尝试在他们声明为匿名的解析函数中调用此函数。

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

我的代码是这样的

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

var bar = 42;

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

我做错了什么?

谢谢

【问题讨论】:

  • 你是想调用foo还是匿名函数?
  • foo 在匿名函数中,然后(匿名)使用这个匿名函数。我尝试在其中检索匿名函数。

标签: javascript recursion promise


【解决方案1】:

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

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

也可以单独声明函数

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

【讨论】:

  • 注意这不会等待任何异步,除非你return
猜你喜欢
  • 2017-12-18
  • 2011-04-22
  • 2019-01-23
  • 2015-12-05
  • 2016-04-02
  • 2015-05-15
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多