欢迎光临散文网 会员登陆 & 注册

千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

2023-07-21 09:10 作者:大巧1111  | 我要投稿

回调地狱

回调函数:就是把一个函数当作一个函数的参数-

当异步操作想要有顺序执行时,只能再一个异步成功以后的回调函数里面嵌套另一个异步的操作,如果嵌套层数过多就形成了回调地狱,弊端:后期代码维护比较难

promese

解决回调地狱的问题

promise 封装了异步操作,创建一个promise对象,创建一个函数参数,这个函数参数有两个参数(resolve,rehject),函数参数内部写异步操作,成功resolve(),失败reject(),然后promise对象会接收到异步操作的状态。p.then(成功)、p.catch(失败)

promise 对象的状态(状态机-记录内部异步操作的状态)

进行中 pending (promise创建以后)

成功 fulfilled(调用resolve 以后就会成功 ----resolve(成功的结果))

失败 reject (调用reject以后就会失败---reject(失败结果))

进行中--成功

进行中--失败,

状态不可逆

promise 封装

1.写个函数

2.函数内部创建promise对象

3.promise 对象里写异步操作,成功调resolve 失败调reject

4.这个函数 return promise对象

缺点:还有一层嵌套

promise的静态方法

1.快速创建一个成功的peomise对象

peomise.resolve()

2.失败:promise.reject

3.promise.all(数组)

all的参数是一个数组,数组中元素是多个promise对象,all方法返回一个promise对象两个都成功才成功,有一个失败那么就是失败

4.promise.race(数组)看谁更快就取谁的状态

5.promise.any() 获取第一个成功的promise的状态

6.promise.allSettled(数组)全部结清,会等到都结束,统一获取所有人的状态。

async await

原理:实际上是生成器函数的语法糖

es 7的语法

回调地狱最终解决方法

可以将异步嵌套的语法,改成像是同步一样。不需要嵌套,就可以有先后顺寻

使用:

1.定义一个函数,函数前面加async

2.函数里面可以写异步操作,异步操作必须被promise封装

3.promise对象前面写一个 await,就会等promise'里的异步操作成功以后再往下执行

缺点:只能等成功之后往下执行

try -catch

尝试执行try里面的代码,如果报错,就会执行catch

千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip的评论 (共 条)

分享到微博请遵守国家法律