异步与同步简析

异步与同步

概念

异步任务相当于现实生活中的同步,在日常生活中,我们要烧水,可以在烧水的时候煮饭做菜。等水开了,再去灌水(后面这句是回调)
同步任务则是,必须完成这件事,才能做下一件事,这件事做不完,就做不了下一件事。比如,你还没写完作业,而恰巧你的小伙伴来找你完,你的父母就和你说,写完作业才能出去玩。那能怎么办呢,只能先写完作业,才能出去玩。
还有一个例子,就是打游戏通关,这个游戏通过了第一关才能打第二关,这就是同步。
开了个会员,第一关没通过,就先通其它关,之后再回来通第一关,这就是异步。

同步异步的区分

记住,定时器(setTimeOut),网络请求(ajax),事件监听(addEventListener)都是异步的
ajax虽然可以改写成同步的,但禁止使用

回调

例子

function f1(){}
function f2(){
     fn()
}
f2(f1)
分析:
      1. 我没有调用f1
      2. 我把f1传给了f2
      3. f2调用了f1
      4. f1是我写给f2调用的函数
结论:f1是回调

异步与回调的关系

  1. 异步任务需要用到回调函数来通知结果
  2. 回调函数不一定只用在异步任务里,也可用于同步任务,比如arr.forEach(i => console.log(i))就是同步回调

注意:
每个函数都有return,有的没写return,就默认返回undefined

posted @ 2020-12-17 21:34  时光傀儡师  阅读(204)  评论(0编辑  收藏  举报