ajax day03 and ajax day04

ajax day03

promise作用:

解决回调地狱

回调地狱:

异步函数,层层嵌套

promise语法:

1.创建promise实例对象

2.调用promise实例的then方法

异步:定时器 点击事件

promise原理:

1.promise对象的三个状态:

a.pending(进行中)

b.fulfilled(已成功)

c.rejected(已失败)

2.promise对象的状态改变,只有两种可能:

a.resolve():pending变成fulfilled

b.执行 reject():从pending变成rejected

3.promise在创建实例的时候,里面的代码会立即执行,promise自己是同步的,只有then方法才是异步的

链式:一级一级往下找

链式调用:再上一个then里面,返回下一个promise实例,就可以继续在后面then

promise其他方法:

promise.all():将多个promise合并成一个,等待所有promise全部执行完毕才会执行then

相当于逻辑与: 全真为真,一假则假

promise.race():将多个promise合并成一个,任意一个promise执行完毕就执行then

相当于逻辑或:一真则真,全假为假

async异步函数语法:

  • async 函数(){
  • const res = await promise对象
  • }

async关键字作用:

修饰函数,让函数内部可以使用await关键字

await关键字作用:

取代then方法 并 获取then的结果

注意点:await只能用于被async修饰的函数,否则程序会报错

以前使用axios:

axios底层原理:promise+XMLHttpRquest

1.axios方法本质是返回一个promise对象

2.promise内部是原生XHR发送Ajax请求

3.请求成功用resolve返回给promise对象结果给外面then

async必须在函数前面,await必须在函数内部使用,替代then,和then的结果

面试题try-catch:

1.error()对象:内置对象,错误信息

2.throw关键字:抛出异常,可以让控制台变红.throw错误信息

3.try-catch语法:捕捉错误

  • try{
  • 代码块:能执行就正常执行,遇到错误就会执行catch
  • }catch(error){
  • 如果try的代码遇到错误,或者遇到错误就会执行catch
  • }finally{
  • 无论代码执行成功还是失败,最终都会执行
  • }

4.try-catch应用场景:

结束forEach循环(面试题)

捕捉await的错误信息

ajax day04

EventLoop事件循环:

1.异步代码

微任务:promise的then

await下面的代码

宏任务:事件处理函数

定时器

ajax

2.什么是事件循环:js代码执行机制

3.事件循环流程:

1.先解析默认script任务

2.判断代码是同步还是异步

3.如果是同步,立即执行

4.如果是异步,就会放入异步队列,微任务放入微任务队列,宏任务就放入宏队列

5.当前队列所有的同步都执行完毕,开始执行异步

6.先执行微任务,再执行宏任务,完成本次事件循环

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值