博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TW实习日记:第13天
阅读量:6308 次
发布时间:2019-06-22

本文共 1342 字,大约阅读时间需要 4 分钟。

  昨天困扰的问题终于解决了。因为是百度地图api提供的函数,所以这个解决办法并不适用于所有异步请求,仅仅针对百度地图api的调用接口函数和回调函数。有两种解决方法可以解决百度地图api中常出现的请求回调的顺序问题,背景:方法A用于搜索获得两点间导航路线的点集合,方法B用于获得数据,调用方法B时将处理点集合的方法C放入参数列表。需要循环n次获得n+1组两点之间的点集合,因为种种原因获取的点集合和搜索顺序并不一致。框架是vue.js。

  解决方案1:可以使用一个定时器来定时发送,并且设置一个标志位,只有标志位为真才进行请求。

  切记在回调函数内将标志位设置为true!

  切记在回调函数内将标志位设置为true!

  切记在回调函数内将标志位设置为true!

  以下是调用函数的伪代码,回调函数就不写了:

let self = this;let i = 0;let flag = true;let interval =  window.setInterval(function () {          if(flag){
//当标志位为真 if(i > self.points.length - 1){
//限定条件 window.clearInterval(interval);//清除定时器 return ; } //以下为需要定时做的请求 let point0 = self.points[i]; let point1 = self.points[i+1]; let m = new BMap.Marker(point0); self.map.addOverlay(m); driving.search(point0, point1); } flag = false;//修改标志位 },200);//设置发送间隔

 

  解决方案2:请求代码块只进行一次,在回调函数结尾处进行请求,同时计数,达到限定条件则停止发送请求。代码就不贴了,相信应该明白了。

  方案1和方案2本质是一样的,通过一种方式得知回调函数被执行,再发送请求,区别就在于实现方式,一个是直接让回调函数来发送请求,一个是通过定时器。没想到昨天怎么想也想不出来的问题今天竟然搞明白了,因为百度地图api的特殊性,导致这两个方案不具有普适性,如果以后遇到更难的需求,就再说吧。今天还完成了之前挖的坑之一:整理搭建ssm框架的步骤和框架代码。并且从今天开始,日常烧香拜佛写后端代码,真的不想再写前端和js了!

  挖坑清单:

  1. Vue缓存机制、生命周期和钩子函数
  2. 使用自用组件编写页面
  3. git学习与常用命令记录(最后的整理)
  4. 看书和复习

 

Terence Xie

2018.8.1 周三 20:06

转载于:https://www.cnblogs.com/WaterApe/p/practiceInTW_13.html

你可能感兴趣的文章
如何学习虚拟现实技术vr? vr初级入门教程开始
查看>>
第4 章序列的应用
查看>>
Mysql explain
查看>>
初识闭包
查看>>
java tcp socket实例
查看>>
011 指针的算术运算
查看>>
hdu1874畅通工程续
查看>>
rails 字符串 转化为 html
查看>>
java-学习8
查看>>
AOP动态代理
查看>>
Oracle序列
查看>>
xcodebuild命令行编译错误问题解决
查看>>
Yii2.0 下的 load() 方法的使用
查看>>
华为畅玩5 (CUN-AL00) 刷入第三方twrp Recovery 及 root
查看>>
LeetCode----67. Add Binary(java)
查看>>
母版页 MasterPage
查看>>
[转] ReactNative Animated动画详解
查看>>
DNS原理及其解析过程
查看>>
记录自写AFNetWorking封装类
查看>>
没想到cnblog也有月经贴,其实C#值不值钱不重要。
查看>>