zoukankan      html  css  js  c++  java
  • 百度地图,加载顺序异步问题,用定时器解决

    问题描述:譬如说我搜索万达广场,然后地图会展示万达广场并且会展示所在的街道(根据经纬度查询),但是当我点击重新定位的时候应该是要定位到我原来的位置,但是他还是定位到万达广场了,我再次点击定位才会回到我原来的位置

    debug发现了问题,

    就是在运行baiduMap这个方法到一半,也就是准备返回经纬度的时候,它却跳出改方法,往上面那个图的方法继续执行,用的还是老的经纬度,这样就导致了,搜索了万达以后,你点击重新定位还是万达,然后再次点击以后才会回到自己当前位置的问题。

    解决:然后找了半天同步的方法都不行,原本想直接把重新定位逻辑(删除点,重新根据经纬度描点)写到原来方法里面,可是这样就动到了原来的代码,风险很大,后面想用回调,可是这个也会动到原来的代码,而且不只一个地方用到这个方法。后面问了前端,前端说写个定时器就可以解决还不用动到原来的逻辑

      1.设置一个布尔值的全局变量,默认为false

      2.然后再在方法里面设置为true

      3然后再写一个定时器,1秒执行一次,如果为false就不执行里面的逻辑,然后继续定时器,然后当全局变量为true的时候就执行里面的逻辑,然后再关闭定时器就可以了。

    没有想到还有这种操作,记录一下,与大家共勉

  • 相关阅读:
    Java如何实现跨平台?
    Javascript的对象再认识
    说说javacsript的函数
    setTimeout() 与setInterval()
    datepicker 插件
    table中,表头固定,body滚动的方式。也就是使用:css Table布局-display:table
    jgrid的相关知识
    学习笔记
    ES6 — 箭头函数
    受控组件
  • 原文地址:https://www.cnblogs.com/lkeji388/p/10113101.html
Copyright © 2011-2022 走看看