拉勾教育大前端高薪训练营 第一模块心得体会与笔记二

拉勾教育大前端高薪训练营 第一模块心得体会与笔记(二)JavaScript 异步编程单线程与异步模式 单线程:JavaScript执行环境中负责执行代码的线程只有一个,这是为了避免DOM操作中的同步操作带来的复杂线程同步问题。异步模式:为了解决耗时操作阻塞程序执行的问题,JavaScript引入了异步模式。在异步模式下,任务开启...
拉勾教育大前端高薪训练营 第一模块心得体会与笔记二
拉勾教育大前端高薪训练营 第一模块心得体会与笔记(二)JavaScript 异步编程单线程与异步模式
单线程:JavaScript执行环境中负责执行代码的线程只有一个,这是为了避免DOM操作中的同步操作带来的复杂线程同步问题。异步模式:为了解决耗时操作阻塞程序执行的问题,JavaScript引入了异步模式。在异步模式下,任务开启后会立即执行下一个任务,而不会等待当前任务完成。这使得JavaScript能够同时处理大量耗时任务,提高了程序的响应能力。同步模式与异步模式的对比
同步模式:按照代码编写顺序将任务依次执行,后一个任务需要等待前一个任务执行结束再开始执行(排队执行)。异步模式:任务开启后会立即往后执行下一个任务,后续逻辑一般会通过回调函数的方式定义。执行顺序并不会按照代码顺序执行,这使得异步编程更加灵活,但也带来了理解上的复杂性。回调函数
概念:回调函数是由调用者定义,交给执行者执行的函数。它是所有异步编程方案的根基。Promise
产生过程:传统的回调方式完成复杂异步流程会有大量嵌套,产生回调地狱,使得代码难以理解和维护。CommonJS社区提出了Promise规范,为异步编程提供了一种更合理、更强大的解决方案。Promise在ES2015中被标准化,成为语言规范。状态:Promise具有Pending(进行中)、Fulfilled(已成功)和Rejected(已失败)三种状态。Fulfilled或者Rejected发生后,Promise的状态不可再被改变。基本用法:通过new Promise()构造函数创建一个Promise实例,并在构造函数中定义异步操作。使用then()方法注册成功和失败的回调函数。使用案例:通过Promise封装AJAX请求,使得异步操作更加简洁明了。常见误区:避免使用嵌套函数的方式,利用Promise的链式调用特点来避免回调函数的嵌套。链式调用:promise.then方法返回一个新的promise对象,后边的then方式就是在为上一个then返回的Promise注册回调。异常处理:Promise实例提供了catch的方法来进行异常处理。在代码编写过程中,应明确的捕获每一个可能的异常。静态方法:Promise.resolve()将一个值快速的转化为一个Promise对象,状态为resolved;Promise.reject()将一个值快速的转化为一个Promise对象,状态为reject。并行执行:Promise.all()将多个Promise实例包装成一个新的Promise实例,当所有Promise状态都变为fulfilled之后,新的Promise状态才会变成fulfilled。Promise.race()只会等待第一个结束的任务。执行时序:Promise的回调属于微任务,会在当前任务结束过后立即从eventqueue里取出并执行。Generator 异步方案
基本概念:Generator函数是一种可以暂停执行的函数,通过yield关键字将函数的执行权交还给调用者。使用方法:调用Generator函数会返回一个生成器对象,通过调用生成器对象的next()方法来控制Generator函数的执行。异常处理:通过调用生成器对象的throw()方法可以抛出一个异常,在Generator函数内部可以通过try catch的方式捕获到该异常。配合Promise:Generator函数可以与Promise结合使用,实现更加简洁的异步编程。通过co函数等执行器,可以自动处理Promise的链式调用和异常处理。Async / Await
概念:Async/Await是Generator函数的语法糖,它使得异步代码看起来更像是同步代码,提高了代码的可读性和可维护性。使用方法:在函数前添加async关键字,表示该函数是异步函数。在异步函数内部,可以使用await关键字等待一个Promise完成,并获取其返回值。注意事项:await目前只能在函数体内部使用,且await后面的表达式必须是一个Promise对象。心得体会
通过本次学习,我深刻理解了JavaScript异步编程的重要性和复杂性。同步模式和异步模式的对比让我更加清晰地认识到异步编程的优势和挑战。回调函数作为异步编程的根基,虽然简单但容易引发回调地狱问题。Promise的引入为异步编程提供了一种更加优雅和强大的解决方案,通过链式调用和异常处理机制,使得异步代码更加简洁和可靠。Generator函数和Async/Await进一步简化了异步编程的语法,使得异步代码看起来更像是同步代码,提高了代码的可读性和可维护性。
在未来的开发中,我将更加注重异步编程的实践和应用,充分利用Promise、Async/Await等特性来优化代码结构和提高程序性能。同时,我也会不断学习和探索新的异步编程技术和工具,以应对更加复杂和多样化的开发需求。

以上图片展示了JavaScript异步编程的基本概念和Promise的状态变化过程,有助于更好地理解和应用异步编程技术。
2025-08-30
mengvlog 阅读 11 次 更新于 2025-12-20 00:35:32 我来答关注问题0
萌文网在线解答立即免费咨询

心得体会相关话题

Copyright © 2023 WEN.MENGVLOG.COM - 萌文网
返回顶部