javascript - 嵌套函数的返回值 (Javascript)

标签 javascript function return

我需要从 getNearRoutes 函数返回变量结果。在路由函数内部,数组结果具有所有正确的元素,但当函数结束时,数组结果为空。我知道这是一个范围问题,但我无法修复它,感谢任何帮助。

提前致谢。

getNearRoutes: function(lat, lng){
    result = [];

    var routes = $.getJSON("js/storage/routes.json", function(json) {
        for(var i = 0; i < json.length; i++) {
            var obj = json[i];   

            for( var j = 0; j < obj.points.length ; j++){
                if (app.calculateDistance( obj.points[j].lat, obj.points[j].lng  , lat , lng) < 0.05) {

                    result.push(obj);
                    break;
                }

             }

         }

    });

    return result;
}

最佳答案

由于 getJSON 是异步的,因此您需要回调:

getNearRoutes: function(lat, lng, callback){
    var result = [];
    $.getJSON("js/storage/routes.json", function(json) {
        for(var i = 0; i < json.length; i++) {
            var obj = json[i];   

            for( var j = 0; j < obj.points.length ; j++){
                if (app.calculateDistance( obj.points[j].lat, obj.points[j].lng  , lat , lng) < 0.05) {
                    result.push(obj);
                    break;
                }
             }
         }
         callback(result);
    });
}

然后使用该函数:

getNearRoutes(lat, lng, function(result) {
    console.log(result); //data is here!
});

关于javascript - 嵌套函数的返回值 (Javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24787600/

相关文章:

Java类和返回值

javascript - Tableau Javascript API HTTPS 不工作

javascript - 理解外部函数(数组)的返回函数(x)

javascript - 如何将 Angular ngmodel 与 jQuery UI slider 一起使用?

javascript - 我如何将这段 JavaScript 代码翻译成 Python 代码?

javascript - formatDate JavaScript 函数仅适用于 Chrome

javascript - 使用js的页面中的所有css类

c++ - 一次发布多个数据

c++ - 控制到达非空函数未定义行为的结尾

c - 带逗号的返回语句