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

  • 相关阅读:
    redis 安装和运行
    Django:django-debug-toolbar模块
    Django 的 logging日志文件配置
    Github之利用SSH完成Git与GitHu 的绑定
    4.输出1-100内的所有偶数
    3.输出1-100内的所有奇数
    2.求1-100的所有整数的和
    1.使用while循环输出1.2.3.4.5.6.....8.9.10
    将前台JS数组序列化后提交,后台反序列化对象
    div模拟下拉框
  • 原文地址:https://www.cnblogs.com/silent-cat/p/14152076.html
Copyright © 2011-2022 走看看