zoukankan      html  css  js  c++  java
  • 读《你不知道的JavaScript 中》-异步【2】回调

        这篇博客会根据书籍中的异步第2章做一下总结。

        先看一个异步回调的例子

        ----------------------------------------

    //A

    ajax("a-url", {

        //C

    });

    //B

        ----------------------------------------

        A和B部分表示程序的前半部分(即现在的部分),C部分标识了程序的后半部分(即将来的部分),前半部分立刻执行,接着是一段不确定时间的停顿,在未来的某个时刻,当ajax调用完成,程序会从停下的位置继续执行后半部分。

      这本书中间很多关于关于回调的错误使用场景和如何去弥补错误的描述,但我只是大致看了一眼,接下来是看完2.5小结后作出的总结。

      回调函数时JavaScript异步的基本单元,无论是什么异步处理方式,最终的实现也都是归结到回调函数上面,但是我们在异步编程时,如果是只使用回调或者是自己规定回调的过程的话,很可能会有很多bug。原因有两个:

    1. 人体大脑对事情的计划方式是线性阻塞的,但是回调在表达异步流程时却是非线性非顺序的,所以我们在看回调代码的时候都感觉云里雾里的,更别提是自己动手写代码了,很可能就把自己绕进去了。

    2.回调会受控制反转的影响,就算你已经通过缜密的思考把所有的异步流程把勾画地清清楚楚明明白白,但由于你回调的时候使用了第三方工具,假如第三方工具插入了恶意代码,导致你完美的异步流程彻底崩盘,那最终就会导致你们的信任问题。

    单纯是把博客作为学习的记录,有些博客是看了别人的文章之后再自己总结的,所以不保证完完整整的原创性,如果引用了链接或者作者觉得侵权的话可以联系我删除哦~
  • 相关阅读:
    android提供ToolBar实现划动菜单的陷阱
    style="display"之后不能获取offsetHeight或clientWidth这类测量的值
    onmouseenter与onmouseover
    使用Dom的Range对象处理chrome和IE文本光标位置
    js严格模式“use strict”
    正则表达式lastIndex属性浅析
    IE中的fireEvent和webkit中的dispatchEvent
    readonly=“readonly”与readonly=“true”
    【杂文】
    【洛谷p1015】【一本通p1309】回文数(noip1999)
  • 原文地址:https://www.cnblogs.com/hey-Sarah/p/13375247.html
Copyright © 2011-2022 走看看