21、同步与异步(三种方法)

简介: 21、同步与异步(三种方法)

1、同步:按顺序一条一条数据执行

    // 1、同步:按顺序一条一条数据执行
    console.log('第1条数据');
    console.log('第2条数据');
    console.log('第3条数据');
    console.log('第4条数据');
    console.log('第5条数据');
    // 输出结果:1、2、3、4、5

2、异步:前一条数据不影响后一条数据执行

    // 2、异步:前一条数据不影响后一条数据执行
    setTimeout(() => { console.log('第1条数据') }, 3000);
    setTimeout(() => { console.log('第2条数据') }, 1000);
    setTimeout(() => { console.log('第3条数据') }, 3000);
    setTimeout(() => { console.log('第4条数据') }, 2000);
    setTimeout(() => { console.log('第5条数据') }, 3000);
    // 输出结果:2、4、1、3、5

3、异步获取数据的方法(3种)


  1. 回调函数
  2. ES6的Promose内置对象
  3. async函数


4、异步获取数据的方法(回调函数)

    // 1、回调函数
    var target = 'Hello world!';
    function getDate(fn) {
      setTimeout(() => {
        fn(target);
      }, 500)
    }
    getDate((target) => {
      console.log(target);    // 输出结果:Hello world!
    })


5、异步获取数据的方法(promise内置对象)

    // 2、ES6(promise)内置对象,专业处理异步
    var target = 'Hello world!';
    var result = new Promise((resolve) => {
      setTimeout(() => {
        resolve(target);
      }, 500)
    })
    result.then((target) => {
      console.log(target);    // 输出结果:Hello world!
    })


6、异步获取数据的方法(async函数)

    // 3、async函数解决异步问题
    function getDate1() {
      return new Promise((resolve) => {
        setTimeout(() => {
          resolve(target);
        }, 500)
      })
    }
    async function fun() {
      // await:等待
      let target1 = await getDate1();
      console.log(target1);
      let target2 = await getDate1();
      console.log(target2);
      let target3 = await getDate1();
      console.log(target3);
    }
    fun();


相关文章
|
前端开发
异步转同步的几种方法
在循环等待中,我们可以使用一个变量来指示异步操作是否已完成。然后,我们可以在循环中检查该变量,如果它指示异步操作已完成,则退出循环。
901 0
|
测试技术
CRC-16 MODBUS原理,附实测可用源码
之前做串口解析,CRC校验一直用和校验,就是吧各个位加在一起,新来一个串口协议,是CRC-16 MODBUS的形式校验,不会呀,从网上找了找资源,没有找到源码,都要下载,分享出来。
CRC-16 MODBUS原理,附实测可用源码
|
JavaScript
Vue怎么通过路由实现页面的局部跳转
Vue怎么通过路由实现页面的局部跳转
516 0
|
存储 移动开发 小程序
【uniapp小程序】上传图片
【uniapp小程序】上传图片
2563 0
【uniapp小程序】上传图片
|
机器学习/深度学习 Linux vr&ar
ARIMA差分自回归移动平均模型
ARIMA是**差分自回归移动平均模型**的引文缩写,其中AR表示的是自回归模型,MA表示的是移动平均模型,I表示的是差分。一般写成ARIMA(p,d,q),p是自回归阶数,q是移动平均阶数,d表示差分的次数。
2535 0
ARIMA差分自回归移动平均模型
|
3月前
|
传感器 数据采集 人工智能
智慧农业物联网:传感器数据上云、可视化与智能预警系统搭建
本文介绍智慧农业物联网系统三大核心:传感器数据上云、可视化展示与智能预警。涵盖传感组网、云平台对接、多维可视化及AI预警机制,结合LoRa、4G、MQTT等技术,实现精准灌溉、降本增效,推动农业数字化转型。(238字)
|
物联网 数据管理 Apache
拥抱IoT浪潮,Apache IoTDB如何成为你的智能数据守护者?解锁物联网新纪元的数据管理秘籍!
【8月更文挑战第22天】随着物联网技术的发展,数据量激增对数据库提出新挑战。Apache IoTDB凭借其面向时间序列数据的设计,在IoT领域脱颖而出。相较于传统数据库,IoTDB采用树形数据模型高效管理实时数据,具备轻量级结构与高并发能力,并集成Hadoop/Spark支持复杂分析。在智能城市等场景下,IoTDB能处理如交通流量等数据,为决策提供支持。IoTDB还提供InfluxDB协议适配器简化迁移过程,并支持细致的权限管理确保数据安全。综上所述,IoTDB在IoT数据管理中展现出巨大潜力与竞争力。
553 1
|
弹性计算 缓存 Serverless
Serverless 应用引擎操作报错合集之阿里函数计算中我打开sd时遇到错误,信息为"Function instance exited unexpectedly(code 1, message:operation not permitted) with start command ' '."如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
538 6
|
分布式计算 网络协议 Python
Python网络编程:socket编程
Socket 编程是网络编程的重要部分,主要用于在不同计算机之间进行通信。Python 提供了一个非常强大的 socket 库,使得网络编程变得简单和灵活。本篇博文将详细介绍 Python 的 socket 编程,包括基础概念、核心组件、常用功能,并附上一个综合的示例及其运行结果。
293 12
|
域名解析 存储 网络协议
了解域名解析:解析记录类型详解
了解域名解析:解析记录类型详解
2593 2

热门文章

最新文章