读《你不知道的JavaScript 中》-异步【2】回调

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

    先看一个异步回调的例子

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

//A

ajax("a-url", {

    //C

});

//B

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

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

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

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

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

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

posted on 2020-07-25 16:31  heySarah  阅读(116)  评论(0编辑  收藏  举报

导航