摘要: Promise的执行顺序会设计到JavaScript的事件循环。 找到一张图,来理解: 宏队列: 用来保存待执行的宏任务(回调), 比如: 定时器回调/DOM事件回调/ajax回调 微队列: 用来保存待执行的微任务(回调), 比如: promise的回调/MutationObserver的回调 JS 阅读全文
posted @ 2021-03-18 22:00 李海家 阅读(327) 评论(0) 推荐(0) 编辑
摘要: Promise是一个异步编程的解决方案。 之前的方案是回调函数的方式。优点是指定回调函数的位置更灵活,和解决了回调地狱问题。 规范是Promise A+。 下面手写实现一遍Promise便于理解。 总体结构 1234567891011121314151617181920212223242526272 阅读全文
posted @ 2021-03-18 21:59 李海家 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 在函数组合时,如果有异步操作,那么ramda中compose应该怎么写呢? 在写空间查询例子的时候,就遇到了这个问题,其中doQuery方法是一个异步函数。 解决方法是一个andThen函数。 代码如下: 12345678910111213141516171819202122232425262728 阅读全文
posted @ 2021-03-18 21:56 李海家 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 对象属性的增删改查 方法说明 assoc / assocPath 添加或者修改属性 dissoc / dissocPath / omit 删除属性 evolve 修改属性 merge 合并对象 prop / pick / has / path / propOr / pathOr 读取属性 keys 阅读全文
posted @ 2021-03-18 21:55 李海家 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 背景 前段时间发现了ramda这个函数式的JavaScript的库。一直没机会用。今天遇到个需求,刚好可以使用上。 要求是把后台接口返回的数据格式转化成与echart对接的数据格式,如图: 1234567891011121314151617181920212223242526272829 { "20 阅读全文
posted @ 2021-03-18 19:42 李海家 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 需要临时写点后端代码,实现最基础的增删改查。 在已有的项目框架(Spring Boot)中,观察其他模块的实现,发现需要7个文件。 热心的同事还专门电话给我讲解spring的目录结构和层级关系。 整理记录。 目录结构 123456789101112 src/main├── java/com.geod 阅读全文
posted @ 2021-03-18 19:40 李海家 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 背景 在天地图官网服务可以看到,天地图提供了多种底图服务,分别有两种投影类型,CGCS2000和Web Mercator。 WMTSLayer加载失败 使用WMTSLayer进行加载 12345678 const wmtsLayer = new WMTSLayer({ id: "wmts", url 阅读全文
posted @ 2021-03-18 19:38 李海家 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 遇到个问题,二维样式在三维下,显示异常:显示不全,样式随地图拖拽会闪烁、变化。如下图: 代码中symbol设置: 123456789 var symbol = { type: "simple-fill", // autocasts as new SimpleFillSymbol() color: [ 阅读全文
posted @ 2021-03-18 19:37 李海家 阅读(63) 评论(0) 推荐(0) 编辑
摘要: ArcGIS JS API 在当前(4.15版本)提供有WebTileLayer、WMSLayer、WMTSLayer等图层类,但并没有提供加载WFS服务的图层类。所以使用FeatureLayer来实现加载。 WFS,Web Feature Service,网络要素服务 思路 手动构造Feature 阅读全文
posted @ 2021-03-18 19:36 李海家 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 网上有很多的本地部署ArcGIS API for JavaScript教程。 我翻译并简单修改了官网的部署教程(API解压后的install.html),整理如下。 准备工作 官网下载压缩包,然后解压后放置到要部署的web服务器上,可能是IIS、Tomcat或Nginx。 修改代码 打开文件/var 阅读全文
posted @ 2021-03-18 19:35 李海家 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 项目中有消息推送的需求,就用到了WebSocket。 先在菜鸟教程上抄一段介绍: WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket 阅读全文
posted @ 2021-03-18 19:34 李海家 阅读(192) 评论(0) 推荐(0) 编辑