TW实习日记:第13天
昨天困扰的问题终于解决了。因为是百度地图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了!
挖坑清单:
- Vue缓存机制、生命周期和钩子函数
- 使用自用组件编写页面
- git学习与常用命令记录(最后的整理)
- 看书和复习
Terence Xie
2018.8.1 周三 20:06
TW实习日记:第13天的更多相关文章
- TW实习日记:前三天
今天是2018年7月20号,周五.从周一开始实习到现在,终于想起来要写日记这种东西了,可以记录一下自己这一天所学所做所知也是蛮不错的.先简单总结一下自己的大学生活吧,算是多姿多彩,体验了很多东西.在大 ...
- TW实习日记:第九天
这两天有点忙,要改前端网页和加需求上去.所以昨天说的Vue缓存机制也没看,所以打算现在列个挖了的坑的清单: Vue缓存机制.生命周期和钩子函数 使用项目组自用组件来重写静态页面 SSM框架搭建.整合流 ...
- TW实习日记:第31-32天
不知不觉的,实习的净工作天数,已经都超过一个月了.因为对工作内容不是很满意,所以打算月底离职,也不知道是公司太缺人还是我真的能干活,领导竟然三番两次找我让我再考虑...明天又要找我了,哎...随机应变 ...
- TW实习日记:第20-21天
为什么上周五没写呢,因为上周五一直在熟悉业务流程...根本不会写一些复杂的业务代码,因为没有业务流程图!!!在学校的上需求分析和UML建模课的时候,还有软件工程课的时候,想着这都什么鬼啊,听来干嘛,写 ...
- TW实习日记:第四天
第四天 早上第一件事就是和组长说前一天的需求的事,简而言之就是两个导航栏不属于一个标签内,自定义导航栏属于<body>下的<header>,微信顶部的则是<head> ...
- TW实习日记:第十天
今天任务很简单,就是出品项目的时间轴显示页面和动态路由设置.其实时间轴页面很快就做完了,在做完处理完数据之后,然而有很多细节需要打磨,这就又考验了我面向搜索引擎编程的能力,根据需求百度了很多css的样 ...
- TW实习日记:第八天
今天早上主要是接着做昨天的微信端网页预览附件,听同事说当打包代码放入服务器上后,就不存在跨域问题了,也就懒得自己写接口了,那么就希望自己能一次过吧...结果写着写着,发现开发文档中关于预览文件的方法, ...
- TW实习日记:第七天
今天早上,将项目的两个企业微信接口:登录和应用消息发送接口,做了最后的收尾工作,把目前我能解决的问题算是基本都解决了.早上还开了一个会,大意是组长封装了许多组件叫我们使用,在不断的使用中打磨组件的可用 ...
- TW实习日记:第六天
今日的一整天都是在开发微信相关的接口,因为项目的系统是嵌在企业微信中,所以不可避免的要产生微信UserID和企业系统ID的匹配关系,那么就需要用手机号或是邮箱这种两边都存在的唯一参数进行匹配.然后再将 ...
随机推荐
- PAT——1012. 数字分类
给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...: ...
- js判断值是不是全是数字
if(isNaN(value)){ 不是数字 }else{ 全是数字 }
- 协议类接口 - LCD
一.引脚含义 下图为某LCD相关引脚: 从引脚可以大概看出其SoC的连接情况: 1)VCLK为时钟,每一次像素就移动一次 2)HSYNC/VLINE 3)VSYNC/VFRAME 4)VD0 - VD ...
- Knowledge Point 20180305 详解精度问题
1.1 精度与基本数据类型运算的深度解析 我们在探讨Java基本数据类型时多次提到过精度的问题,那么计算机中的精度究竟是什么样的,为什么我们有时候的计算和我们预期的不同呢?下面我们通过精度来了解: 1 ...
- Oracle树形结构数据-相关知识总结
Oracle树形结构数据--基本知识 1.数据组成 2.基本查询 2.1.查询某节点及该节点下的所有子孙节点 SELECT * FROM QIANCODE.TREE_TABLE_BASI ...
- 557. Reverse Words in a String III (5月25日)
解答 class Solution { public: string reverseWords(string s) { string temp,result; while(1){ if(s.find( ...
- chromium之observer_list
典型用法如下 /////////////////////////////////////////////////////////////////////////////// // // OVERVIE ...
- mysql8.0.11的坑早知道
1.plugin caching_sha2_password could not be loaded 我在mac上用Sequel Pro连数据库的时候,会报出以上错误,这是应为8.0.11把身份认证插 ...
- laravel5.5源码阅读草稿——入口
laravel的启动需要通过路由.中间件.控制器.模型.视图最后出现在浏览器.而路由.中间件.模型,这些功能都有自己的类,比如Route::any().DB::table().$this->mi ...
- thinkphp中的大字母的意思
ThinkPHP 单字母函数 A() 内部实例化控制器 D() 实例化自定义模型类 M() 实例化一个基础模型类 R() 调用某个控制器的操作方法 L() 启用多语言的情况下,设置和获取当前的语言定义 ...