从嵌套函数返回值(Javascript)
Return value from nested function (Javascript)
我需要返回getNearRoutes函数的变量结果。在routes函数中,数组结果包含了所有正确的元素,但当函数结束时,数组结果为空。我知道这是一个范围问题,但我还没有能够解决它,任何帮助是感激的。
提前感谢。
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 返回值 + undefined
- 如何在Android中将Javascript返回值转换为String
- 将 javascript 返回值插入 html
- 从表单javascript返回值时出现问题
- 如何将javascript返回值分配给razor变量
- 将javascript返回值传递给MVC 4中的控制器
- 函数的JavaScript返回值
- HTML5输入类型radio向Javascript返回值
- 如何将客户端javascript返回值传递给ASP经典服务器端
- javascript返回值总是未定义的
- 在 java 中捕获 javascript 返回值
- 将函数的 JavaScript 返回值存储到服务器端的相应 Asp Control OnClick 事件
- WKWebView评估JavaScript返回值
- Javascript-返回值或使用回调函数
- JavaScript返回值:What dos<>意思是
- 在trick中使用javascript返回值
- 如何在承诺javascript返回值
- 如何在html中使用JavaScript返回值
- 从javascript返回值到html