Karam
Articles68
Tags50
Categories14
实现异步的四种方法

实现异步的四种方法

实现异步的四种方法

  1. 回调函数
     回调函数可以看作是把函数分成了两个执行部分,先按照顺序执行第一个部分,然后再return第二部分的函数,执行第二个部分的函数,这样就不会像同步请求一样,阻塞函数执行。    原理是利用定时器把函数第一部分放入事件队列中,因此不阻塞执行
    
  2. Promise
     虽然回调函数已经够用了,但是遇到多层嵌套的回调函数,可能会发生奇怪的错误,这个时候使用Promise可以解决这个问题,它每一个函数都返回一个Promise对象,该对象有一个then方法,允许执行回调函数,这样嵌套的回调函数就变成链式调用,保证不会出错
    
  3. Generator
     Generator定义的函数可以被暂停执行,它的执行类似于协程的概念,一个线程A执行,然后执行到某处暂停,去执行线程B,线程B执行完以后交还执行权给线程A。(async是Genetrator的语法糖)
    
  4. 事件监听
    当某个事件发生,就执行某个函数,也实现了异步
    
  5. 发布/订阅
    也叫做观察者模式,当某个任务执行完毕,就发布一个信号(执行一个函数),然后订阅该信号的函数就执行第二段方法。