本来很久之前就想写这个来着,可是后来赶着开发,还有自己懒,就没有写。今天需要用到deferred的时候还跑来翻翻自己的博文,没有找到还有点懵逼。所以今天用到了,而且达到了自己想要的效果了,想想还是记下来吧。
代码块用到的easyui的$.messager.progress
关于deferred的定义,我还不是很清楚,可以自行百度,我都是百度的。关于本文的应用,就是想达到:循环中的异步方法执行结束后,再调用我想调用的方法。
首先异步方法如下:
function showPoint(mapPoint,warnTeller){
//关于$.Deferred()
var d = $.Deferred();
var url = CTX_PATH + "lgyj/transferRiskCount";
$.post(url,warnTeller,function(data){
try{
// console.log(x,mapPoint);
var latlng = new google.maps.LatLng(mapPoint.lat,mapPoint.lng); //点坐标
var icon;
//根据数据是否有异常设置图标
if(data.total > 0){
icon = '<spring:url value="/resources/map/images/icons/red.png" />';
}else{
icon = '<spring:url value="/resources/map/images/icons/green.png" />';
}
//新建marker点
var marker = new google.maps.Marker({
position: latlng,
map: map,
draggable:false,//禁止拖拽
title:mapPoint.org_name,