本章围绕JS中的异步解决问题:1.什么是异步,为什么会出现异步?2.什么是回调函数和回调地狱?3、Promise的介绍和理解?4.async/await的理解和用法?1、什么是JS中的异步?为什么会出现?答:背景:JS执行代码是逐行执行的。只有上一行有结果后,下一行才能继续;但是,有些代码不会在短时间内返回结果。这时候,我们不应该再傻傻地等待,而应该立即继续执行后面的代码,等到代码返回结果后再进行处理。等待结果返回是同步的,不等待结果是异步的。异步外观是为了更高效的代码执行,而不是机械地等待执行;2.什么是回调函数,回调地狱?答:回调函数:回调函数是一个函数作为参数传递给另一个函数,然后在外部函数内部调用回调函数来完成某个操作。为什么需要回调:其实质是对异步编程的一种解决方案,主要用作异步函数执行完成的标志;回调地狱:多个回调函数相互嵌套,导致代码缩进过多,结构混乱,难以更新维护,这种代码结构就是回调地狱;如代码1所示;3、对Promise的理解主要有几个方面1)什么是Promise?2)Promise实现详解;3)Promise是如何解决异步问题的?4)Promise输出结果题技巧总结;答:1)定义:Promise本身是一个构造函数,通过调用内部方法解决异步问题和回调地狱;2)具体实现:-有三种状态:pending、resolved、rejected;-当任务交给Promise时,处于pending状态,只能从pending->fulfilled或pending->reject变化,不会再次变化;-Promise本身是一个同步立即执行功能,只有当它被执行到resolve/reject时,this是一个异步操作时,它会立即异步执行then/catch的相应内容,然后返回执行同步代码;3)如何解决:-关键:Promise本身的相关操作是同步的,但是可以用来获取异步结束的结果即使Processing-通过创建一个Promise对象,将异步操作放在对象中;-resolve()和reject()都是同步操作,只是放在一个异步函数中,用来捕获异步端,改变当前状态;-.then是异步的实现核心,当Promise状态发生变化时获取返回结果,如果当前状态没有变化则压入数组,当resolve或reject执行时,数组中的函数执行;4)输出结果技巧总结:-链式调用,注意.then()一定会返回一个Promise对象:如果前面的then()返回一个Promise对象,则使用该对象的状态和值;如果前面的then()有返回值,返回Promise
