繁体   English   中英

回调函数的范围

[英]Scope of a callback function

我想实现一个执行ajax请求(响应为json)直到没有响应的“ next”属性的函数。 之后,我需要执行一些回调函数。 最好的方法是什么? 由于错误的回调范围,我的以下代码无法正常工作,我无法想象如何正确传递它。

_requestPhotos = function(url, callback) {
  getYFContent(url, function(data) {
    // some actions

    if (!!data.next) {
      _requestPhotos(data.next, callback);
    } else {
      callback(smth);
    }
  });
};

您发布的脚本没有明显的错误。 例如,等效测试可能如下所示:

alertResult = function(text) {
   console.log("Result is: " + text);
}

doRecursive = function(data, callback) {
   if(!!data.next) {
      doRecursive(data.next, callback);
   } else {
      callback(data.value);
   }
}

var d = { value: 1, next: { value: 2, next: { value: 3 }}};

doRecursive(d, alertResult);

日志结果是"Result is: 3" ,这是您期望的结果。

该错误在其他地方。 您第一次调用此方法是什么,您要传递给它的回调是什么(以及如何定义),以及getYFContent的作用是什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM