js:闭包特性在回调函数中的体现 代码

什么是闭包?闭包指的是:能够访问另一个函数作用域的变量的函数。清晰的讲:闭包就是一个函数,这个函数能够访问其他函数的作用域中的变量

我的回调函数实际应用场景是,我需要获取到监测站数据在地图上展示;

在map.on("load",func)触发函数中执行获取点位数据的函数getAllFacility,在此传入获取数据后的回调函数作为参数:


上述代码,回调函数addFacilityToMap就拥有了调用该回调函数所属的运行环境,构成闭包




现在开始深入探讨一番回调函数,回答 “用回调函数目的是啥?”这一问题。

简单回答问题:异步请求后,当服务器的响应到达时即触发回调函数,这样客户端不会被阻塞。

详细:

1 修改代码为如下返回数据的形式,那么存在的问题是,调用getAllFacility函数获取到的facilityData就是一个空对象{}

2 第一步的代码,获取的是空对象,就是因为异步请求还没有完成;前台会继续执行ajax块后面的脚本,直接先返回了初始化的facilityData={}这一空值。如果一定要这么写,那么设置ajax请求为同步请求。

async: true,(默认是true),ajax请求是异步的;

 async: false,ajax请求是同步的;此时ajax请求将整个浏览器锁死,可能使浏览器进入假死状态。如果网络传输或服务器很慢,响应会让人不可接受

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • “互联网是注意力经济,一个品牌和事件的关注度,一定要有碰撞、有矛盾、有张力才起得来。所以,传播途中有不同声音不但正...
    zpyegg阅读 1,346评论 0 0
  • 黎明很快地打破了夜的沉寂,东方天空的鱼肚白缀着启明星分外的安好。 一声鸡鸣叫醒了熟睡了的草芥,他揉揉眼睛,才发现原...
    草芥人阅读 1,801评论 0 1
  • 好几天没记亲子日记了,今天儿子从姑姑家回来了,为了做好榜样,让儿子写作业的同时,我写亲子日记。今天儿子回来...
    成毓哲妈妈阅读 1,220评论 0 0
  • 艺兰和老公一起去餐厅吃饭,结账时女服务员多算了一百。老公的朋友不乐意了,对服务生说,怎么算的,这一百元难道是你拿了...
    雨晴天空阅读 2,394评论 8 16

友情链接更多精彩内容