读书笔记-回调的缺点

缺乏顺序性和可信任性。
回调函数是 JavaScript 异步的基本单元。但是随着 JavaScript 越来越成熟,对于异步编程
领域的发展,回调已经不够用了。

  • 第一,大脑对于事情的计划方式是线性的、阻塞的、单线程的语义,但是回调表达异步流
    程的方式是非线性的、非顺序的,这使得正确推导这样的代码难度很大。难于理解的代码
    是坏代码,会导致坏 bug。
    我们需要一种更同步、更顺序、更阻塞的的方式来表达异步,就像我们的大脑一样。
  • 第二,也是更重要的一点,回调会受到控制反转的影响,因为回调暗中把控制权交给第三
    方(通常是不受你控制的第三方工具!)来调用你代码中的 continuation。这种控制转移导
    致一系列麻烦的信任问题,比如回调被调用的次数是否会超出预期。
    可以发明一些特定逻辑来解决这些信任问题,但是其难度高于应有的水平,可能会产生更
    笨重、更难维护的代码,并且缺少足够的保护,其中的损害要直到你受到 bug 的影响才会
    被发现。
  • 把一个回调传入工具 foo(…) 时可能出现如下问题:
    • 调用回调过早;
    • 调用回调过晚(或不被调用);
    • 调用回调次数过少或过多;
    • 未能传递所需的环境和参数;
    • 吞掉可能出现的错误和异常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值