zoukankan      html  css  js  c++  java
  • 异步与同步简析

    异步与同步

    概念

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

    同步异步的区分

    记住,定时器(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

  • 相关阅读:
    onclick中的函数的参数this
    classList的使用
    设置点击鼠标时不跳转
    模块补充shutil,logging
    re模块拾遗和递归函数
    正则表达式-re模块
    软件开发规范
    自定义模块2
    常用模块
    初识自定义模块
  • 原文地址:https://www.cnblogs.com/silent-cat/p/14152076.html
Copyright © 2011-2022 走看看