多次异步请求调用ajax,让返回值按特定顺序来返回
来源:互联网 发布:java特种兵 pdf完整版 编辑:程序博客网 时间:2024/06/05 11:09
1. 自己写代码来控制执行循序,而不是直接for,each并发执行,做递归调用
以高德地图 逆地理编码 为例
参考网址:http://lbs.amap.com/api/webservice/guide/api/georegeo/
参考例子:http://lbs.amap.com/api/javascript-api/example/geocoder/regeocoding
<script type="text/javascript">
var mapObj;
var MGeocoder;
var marker = [];
function mapInit() {
mapObj = new AMap.Map('iCenter'); //默认定位:初始化加载地图时,center及level属性缺省,地图默认显示用户所在城市范围
};
var addressStr = "";
//坐标转地址
function setData() {
addressStr = "";
var json = [{ "lngX": "117.1419139142", "latY": "39.1157409540" }, { "lngX": "117.183078", "latY": "39.121749" }, { "lngX": "117.181942", "latY": "39.122237" }];
var jsonArray = [];
for (var i = 0 ; i < json.length; i++) {
jsonArray[i] = json[i];
}
geocoder3(0, jsonArray);
};
function geocoder3(index,jsonObj) {
var getlngX = parseFloat(jsonObj[index].lngX); //
var getlatY = parseFloat(jsonObj[index].latY); //
var arr_dingwei = GPS.gcj_encrypt(getlatY, getlngX); //定位,将gps坐标转成火星坐标
getlngX = arr_dingwei.lon.toFixed(6);
getlatY = arr_dingwei.lat.toFixed(6);
var lnglatXY = new AMap.LngLat(getlngX, getlatY);
mapObj.plugin(["AMap.Geocoder"], function () {
MGeocoder = new AMap.Geocoder({
city: "010" //城市,默认:“全国”
});
//返回逆地理编码结果
AMap.event.addListener(MGeocoder, "complete", getAddress_CallBack);
//逆地理编码
MGeocoder.getAddress(lnglatXY);
});
////加点
var marker = new AMap.Marker({
map: mapObj,
icon: "http://webapi.amap.com/images/0.png",
position: lnglatXY,
offset: new AMap.Pixel(-5, -30)
});
mapObj.setFitView();
//
setTimeout(function () {
index++;
if (index < jsonObj.length) { geocoder3(index, jsonObj); } //递归调用
if (index === jsonObj.length) {
setTimeout(function () {
console.log(addressStr);
}, 50);
}
},50);
}
var i = 0;
//回调函数
function getAddress_CallBack(data) {
i++;
var resultStr = "";
var address;
//返回地址描述
address = data.regeocode.formattedAddress;
//alert(address);
addressStr += address+",";
//返回地址 结果拼接输出
resultStr = "<div style=\"font-size: 12px;padding:0px 0 4px 2px; border-bottom:1px solid #C1FFC1;\">" + "<b>地址</b>:" +i + address + "</div>";
$("#result").append(resultStr);
}
</script>
- 多次异步请求调用ajax,让返回值按特定顺序来返回
- jQuery之异步Ajax请求使用 通过传递参数来调用后台方法返回状态
- Ajax多次请求同一个URL返回相同值问题
- 同时发送了多次ajax请求,且都是异步的,怎样拿取某一次ajax请求的返回数据。
- ajax请求数据,返回数据顺序问题
- Ajax异步调用返回码及意义
- Ajax调用后台请求并返回结果值详解
- ajax让返回的内容显示在特定div里
- 获取ajax请求返回值
- ajax struts action异步请求返回提示刷新
- spring mvc中返回ModelAndView后执行ajax异步请求
- ajax异步请求 返回xml文件,读取xml
- ajax 异步请求后台返回字符串赋值给js参数
- jquery的ajax异步请求接收返回json数据实例
- ajax json 请求返回
- 异步调用同步返回
- jquery ajax异步 获得返回值
- jquery ajax异步 获得返回值
- 关于Tensorflow 利用模型预测测试集结果的思路
- IntrospectorCleanupListener作用
- ORACLE-删除及创建新用户及表空间
- JDK环境变量配置
- Ajax从后台get值
- 多次异步请求调用ajax,让返回值按特定顺序来返回
- Sokoban 推箱子 C++代码
- AP聚类算法原理分析
- 【PAT】甲级1011
- zTree选中本节点时自动选中其子节点
- android 分享sharesdk集成
- git学习笔记(一)
- phpstudy下的nginx服务器显示目录
- MySQL高级查询——连接(join)查询实例详解