首页 > 其他分享 >Web前端高级工程师培训:异步处理专题

Web前端高级工程师培训:异步处理专题

时间:2024-10-13 08:51:21浏览次数:8  
标签:Web 专题 函数 异步 await promise Promise 回调

异步处理专题

课前准备

  • 工具
    • 编辑器 VSCode
    • 浏览器 Chorme
  • 前置知识
    • ES6基础语法

课堂主题

  • 同步及异步概念
  • 方块运动的实现
  • promise的用法
  • then的返还值
  • Async 函数 和 await

课堂目标

理解并学会使用promise使用方式以及async 、await的使用

同步异步概念

  • js是单线程

    • 单线程:同一时间只能做一件事情
    • 为什么是单线程?
      • 为了避免复杂性
  • 同步和异步

    • 同步和异步是一种消息通知机制

      • 同步阻塞: A调用B,B处理获得结果,才返回给A。A在这个过程中,一直等待B的处理结果,没有拿到结果之前,需要A(调用者)一直等待和确认调用结果是否返回,拿到结果,然后继续往下执行。

      ​ 做一件事,没有拿到结果之前,就一直在这等着,一直等到有结果了,再去做下边的事

      • 异步非阻塞: A调用B,无需等待B的结果,B通过状态,通知等来通知A或回调函数来处理。

      ​ 做一件事,不用等待事情的结果,然后就去忙别的了,有了结果,再通过状态来告诉我,或者通过回调函数来处理。

在这里插入图片描述

异步处理方案

  • 回调

    • 通过回调函数来处理异步,容易造成回调地狱
      • 回调地狱:函数作为参数层层嵌套。回调地狱会导致代码可读性及可维护性变差。
  • 自定义事件

方块运动实现

  • 回调运动框架方块的运动

promise使用

  • ES6 Promise 对象

    • 两种参数:then的2个参数;onresolove 和 onreject;

    • ES6的Promise对象是一个构造函数,用来生成Promise实例。
      所谓Promise对象,就是代表了未来某个将要发生的事件(通常是一个异步操作)。
      它的好处在于,有了Promise对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数

    • Promise对象的三种状态 pending 、resolve 和 reject

    • then 方法

    • then的返回值,会返回一个新的 Promise 对象, 但是状态会有几种情况:

      • then 的回调函数中没有返回值,then就会返回一个状态为: resolved 的 promise 对象
      • then 的回调函数返回值是 非 promise 的值, then就会返回一个状态为: resolved 的 promise 对象,另外会把返回值,传递给 下一个 then
      • then 的回调函数返回值是 promise 对象,then 就直接返回这个 promise 对象,具体的状态可以由我们自己定义,具体传递的值,也由我们自己定义
    • Promise 下的方法:resolve、reject、all、race、finally

async及await 改造promise

  • Async 函数 和 await 改造promise;

  • try及catch方法捕获错误

总结

  1. 同步和异步
  2. Promise 写法
  3. promise状态
  4. then的返还值
  5. Async 和 await 写法

下节课预告

Promise原理解析

标签:Web,专题,函数,异步,await,promise,Promise,回调
From: https://blog.csdn.net/weixin_50556117/article/details/142893638

相关文章

  • Web前端开发入门学习笔记之CSS 39-40 --新手超级友好版- 文本颜色字体篇
       Foreword写在前面的话: 大家好,我是一名刚开始学习HTML的新手。这篇文章是我在学习html过程中的一些笔记和心得,希望能和同样在学习HTML的朋友们分享。由于我的知识有限,文章中可能存在错误或不准确的地方,欢迎大家在评论区提出建议和指正。我非常期待大家的反馈,以便我能......
  • JavaWeb基础-学习笔记03
    03Maven、MyBatis、HTML1.Maven1.1Maven概述Maven是专门用于管理和构建Java项目的工具,它的主要功能有:提供了一套标准化的项目结构标准化的项目结构:eclipse、myeclipse、IDEA...(不同IDE之间,项目结构不一样,不通用)Maven提供了一套标准化的项目结构,所有IDE使用Maven构......
  • 如何快速建立自己的异地互联的远程视频监控系统,通过web浏览器或手机可以直接查看公网
    目录一、需求二、方案2.1、计划方案2.2、实施准备2.2.1所需配置的产品和服务2.2.1.1云主机2.2.2.2视频监控平台软件2.2.2.3客户端访问2.2.2所需配置的人员三、选择公网的云视频监控接入平台3.1、云视频监控接入平台的好处3.1.1可以根据需要灵活配置硬件资源3.1.2......
  • JavaScript 异步编程入门
    最近开始不断学习实践JavaScript,出于性能测试的敏感,首先研究了JavaScript的异步编程实践,目前看跟之前学过的Java和Go都不太一样。使用的语法上相对更加复杂,也可能因为我实践得还太少。异步编程异步编程是一种在程序执行过程中,不阻塞主线程的任务处理方式。相较于同步编程......
  • Web集群服务-Nginx
    1.web服务1. WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站2. WEB中间件:等同于WEB服务3. 中间件:范围更加广泛,指的负载均衡之后的服务4. 数据库中间件:数据库缓存,消息对列2. 极速上手指南nginx官网: nginxdocumentation2.1 配置yum源vim......
  • Pywebview 5.2 storage_path传递参数参数无效
    背景pywebview5.2在我测试数据目录时,发现在启动界面后webview目录仍然为空deftest_storage_dir():window=webview.create_window('StorageDirectory',url='https://kimi.moonshot.cn/')webview.start(debug=True,private_mode=False,g......
  • Spring-AI基于GPT3.5实现开发WEB应用------Spring-AI框架
    packagecom.alatus.springai.controller;importjakarta.annotation.Resource;importorg.springframework.ai.chat.ChatResponse;importorg.springframework.ai.chat.prompt.Prompt;importorg.springframework.ai.openai.OpenAiChatOptions;importorg.springframe......
  • AOT漫谈专题(第二篇): 如何对C# AOT轻量级APM监控
    一:背景1.讲故事上一篇我们聊到了如何调试.NETNativeAOT程序,这是研究一个未知领域知识的入口,这篇我们再来看下如何对NativeAOT程序进行轻量级的APM监控,当然这里的轻量级更多的是对AOT中的coreclr内容的挖掘。二:如何轻量级APM监控1.一个简单的例子用一个不断的往内存......
  • springboot+vue基于Web的校园羽毛球馆管理系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景在当今信息化快速发展的时代,高校作为知识传播与创新的重要场所,其基础设施的管理与服务水平直接影响到师生的学习与生活体验。羽毛球作为一项广受欢迎的体育运动,不仅能够锻炼身体,还能促进社交互动。然而,传统的高校羽毛球馆管理方式存在......
  • Python 列表专题:添加元素
    目录1.Python列表概述1.1什么是列表?1.2列表的基本操作2.添加元素的方法2.1使用 append() 方法2.1.1添加不同类型的元素2.2使用 extend() 方法2.2.1使用字符串扩展列表2.3使用 insert() 方法2.4使用 + 操作符2.5使用 * 操作符3.使用案例3.1......