回调机制

发布时间:2021-10-05 00:34:56 阅读:(195)

    回调机制

    把函数作为参数,传递给另一个函数,延迟到另一个函数的某个时刻执行的过程叫回调。

    回调函数的本质是一种模式(一种解决常见问题的模式),或一种机制,因此回调函数的实现方式也被称为回调模式或回调机制。

    设计思想

    当我们把一个回调函数作为参数传递给另一个函数时,我们只传递了这个函数的定义,并没有在参数中执行它,而在包含函数的函数体内的某个位置被执行,就像回调函数在包含函数的函数体内被定义一样。

    设计要点

    • 在支持函数式编程的语言中,可以使用回调函数实现。作为参数传递的函数称为回调函数,接收回调函数(参数)的函数称为高阶函数或包含函数。
    • 在只支持面向对象编程的语言中,可以使用策略模式来实现回调机制。

    优缺点

    优点:

    • 避免重复代码
    • 增强代码的可维护性
    • 有更多定制的功能
      缺点:
      可能出现“回调地狱”的问题,即多重的回调函数调用

    回调在异步中的应用

    程序的执行方式分两种,同步执行、异步执行

    • 同步执行:只有前一个任务执行完毕,才能执行后一个任务
    • 异步任务:前一个还没执行完成,就可以执行后一个任务

    异步执行的实现方式有两种:一种是通过多线程的方式(一个任务开一个新的线程),另一种是通过多任务的方式(如JS的异步就是通过基于任务队列的事件循环来实现的)。

    异步调用经常用在一些比较耗时的任务上,如 I/O 操作、网络请求等。

    应用场景

    • 在第三方库和框架中
    • 异步执行
    • 在需要更多通用功能的地方,更好地实现抽象