循环异步加载排序解决方案

前端列表展示中,通过经纬度调用百度API获取地址,由于API的异步特性导致排序混乱。尝试同步加载失败后,采用递归函数成功解决,确保了渲染后的列表按时间顺序排列。
摘要由CSDN通过智能技术生成

问题描述,前端列表展示,通过返回经纬度然后调百度API方法获得地址,但是百度的API通通是异步回调,本来返回的数据是按时间排序的,造成的结果是渲染后时间顺序被打乱,我尝试修改调用方法想改成同步加载,失败,然后就用递归函数解决了,不知道还有没有更好的方法。


-----------------------粘贴代码--------------------------------------------

var items = data.items;//ajax返回列表数据
 
      var index = 0;
      var length = data.items.length;
      var addLi = function(){
       if (!length) {return false;}
       var _li;
       var point = new BMap.Point(items[index].longitude,items[index].latitude);//定义百度坐标点,参数是经纬度
       var gc = new BMap.Geocoder();//定义 geocoder对象
       gc.getLocation(point,function(rs){//异步加载回调函数
           var address;
           if (rs.address) {
                address = rs.address+','+rs.business;
           }else{
               address='';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值