zoukankan      html  css  js  c++  java
  • js同步和异步和回调的理解

    看阮老师的http://www.ruanyifeng.com/blog/2014/10/event-loop.html 

    我谈下我自己的理解

    js执行时可以想象成一条车道,车道上汽车一辆接一辆,有条不紊的运行。(同步)这时,有一辆车坏掉了。假如它停在原地进行修理,那么后面的车就会被堵住没法行驶(代码堵塞),交通就乱套了。幸好旁边有应急车道,可以把故障车辆推到应急车道修理,而正常的车流不会受到任何影响(异步处理)。等车修好了,再从应急车道回到正常车道即可。唯一的影响就是,应急车道用多了,原来的车辆之间的顺序会有点乱。

    或者是这么看js执行好比玩的垃圾网页游戏,主线任务被绑定死的不做完不准做支线(同步),但支线任务又会被接取,接取后只好放入任务面板等做完主线后再做(异步)

    回调(这个忘了哪里听过但例子真的很好)

    约会结束后你送你孩子回家,离别时,你肯定会说:“到家了给我发条信息(call me back),我很担心你。”

    然后你女朋友回家以后还真给你发了条信息。

    其实这就是一个回调的过程。

    你留了个参数函数(要求女朋友给你发条信息)给你女朋友,然后你女朋友回家,回家的动作是主函数。

    她必须先回到家以后,主函数执行完了,再执行传进去的函数,然后你就收到一条信息了。

  • 相关阅读:
    文件下载
    Regularexpressionvalidator控件常用正则表达式
    确认删除
    回发或回调参数无效。
    回车提交表单
    具有身份验证的web.config
    OleDbParameter参数的使用
    把CS文件编译成dll文件
    .Net简单三层
    ASP.NET 2.0中的页面输出缓存
  • 原文地址:https://www.cnblogs.com/jiangxiaoming/p/13620691.html
Copyright © 2011-2022 走看看