职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 337|回复: 1

Ajax 中的回调函数

[复制链接]
已经来了吗 发表于 2011-8-22 11:59 | 显示全部楼层 |阅读模式
在做地图的时候,有一......
看来默认是异步的,你......


在做地图的时候,有一个方法是给一个经纬度坐标,返回该坐标所在的省市区的相关信息,可是返回值是在回调函数中给定的,代码如下,其中用到的方法是MapABC
Javascript代码  
var ceshi;//设置测试是否执行赋值的变量   
var mls =new MReGeoCodeSearch(); //定义一个查询的对象   
mls.setCallbackFunction(function(data){ceshi=data.SpatialBean.City.name;}); //设置回调函数   
mls.poiToAddress(new MLngLat(lngx,lngY));//对象执行查询方法   
alert ceshi;  

            var ceshi;//设置测试是否执行赋值的变量
            var mls =new MReGeoCodeSearch(); //定义一个查询的对象
            mls.setCallbackFunction(function(data){ceshi=data.SpatialBean.City.name;}); //设置回调函数
            mls.poiToAddress(new MLngLat(lngx,lngY));//对象执行查询方法
            alert ceshi;

执行结果alert 内容为空。
我无法对它进行操作,由于我要将回调函数中的值引用到回调函数之外,我将其返回值付给一个全局变量ceshi,但是由于执行顺序的问题 ,如果将alert 语句写在回调函数中就可以正常返回值,说明:当查询方法执行完之后,没有立即执行回调函数

测试结果如上术。如有不会或者别的见解,希望能够交流。

jinchang 发表于 2011-8-22 11:59 | 显示全部楼层
看来默认是异步的,你看下它api有没有同步调用方式。不然你只能在回调中调用后续后的流程
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-26 19:48 , Processed in 0.105005 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表