Promise

Promise

回调函数 把 函数 作为 参数

回调函数 嵌套 回调函数 -----形成 回调地狱 ES6新增 解决 异步回调地狱

Promise 解决 异步回调

Promise 是一个 构造函数

Promise有三个状态 等待padding 完成resolved(fulfilled) 失败 rejected

状态一旦改变就不能再变化 变成功后不能变回失败 变失败后不能变回成功

Promise对象有 then 和 catch 方法

async 是异步函数/promise的终结者

function前面加async,说明该函数是一个异步函数,必须和await 一起使用 await 后面的函数返回的是promise对象

await 等待 等待await后面的异步函数执行完 再执行await下面的代码

注意:await并不是将异步函数变成同步函数,只是改变了异步函数的调用方式。

async和await的缺点,怎么处理await返回的错误,

因为在awite在转换promise对象时,会吞并promise的错误,我们可以利用原生JS的try,catch进行抛出异常抛出异常

throw new Error

async/await的优缺点

它是把异步请求变成同步执行的.async放在最近函数外调用,返回的是promise对象

1.方便级联调用:即调用依此发生的场景;

2.同步代码编写方式:Promise使用then函数进行链式调用,一直....;

async/await从上到下,顺序执行,就像写同步代码一样,更符合代码编写习惯

缺点: 没有catch错误处理,需要js原生的try【踹爱】,catch进行错误处理

构造函数

内置构造函数:

new Object new Array new Date new RegExp

new Promise

构造函数 --也是函数 ,跟普通函数不同的是首字母大写 --- 创建对象的

function Stseudent(name,age,cide){

this.name = name

this.age = age

this.code = code

}

let p = new Promise((resolve,reject)=>{

// 异步编程

//异步执行成功 执行resolve(then) 失败执行reject(catch)

//同时把结果通过resolve 或者 reject的参数返回出去

setTimeout(()=>{ resolve(3)},2000)

})

p.then(res=>{ consele.log(res)})

.catch(err=>{ consele.log(err)})

consele.log(p)

自定义构造函数:

1.new 创建一个对象

2.调用Students这个函数,把new创建的对象赋值给this

3.给创建的对象通过 .的方式添加属性,属性值为传递的参数

4.默认返回创建的对象

let oA = new Student('zs',12,1001)

log(oA)

let oB = new Student('ls',34,1002)

log(oB)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值