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

  • 相关阅读:
    ruby 中 raise 抛出异常
    ruby中attr_accessor方法的理解
    Redis实现分布式缓存
    应用服务器集群概念
    反向代理和正向代理区别
    如何限制同一用户同时登录多台设备?
    Docker 初始
    Java 的反射机制你了解多少?
    JWT 实战
    判断 uniapp 项目运行到 什么机型
  • 原文地址:https://www.cnblogs.com/silent-cat/p/14152076.html
Copyright © 2011-2022 走看看