ES6 promise和async,await介绍

一.介绍(promise)

Promise其实是一个构造函数, 自己身上有all、reject、resolve这些方法,原型上有then、catch这些方法。这么说用Promise new出来的对象肯定就有then、catch方法。

prpmise:启动异步任务=>返回promise对象=>给promise对象绑定函数

从语法来说:promise是一个构造函数;

从功能上来说:promise对象用来封装一个异步操作并可以获取其成功或者失败的结果。

(用promise用来封装函数)

优点:

(1)指定回调函数的方式会更加的灵活

(2)支持链式调用,可以解决回调函数地域问题

1.promise的状态:实例对象中的一个属性(promiseState)(内置的)

pending:进行中
resolved/ fullfilled:已经成功
rejected 已经失败
状态改变:
Promise对象的状态改变,只有两种可能:
从pending变为resolved
从pending变为rejected。

2.promise的值(promiseResult):实力对象中的另外一属性,保存着异步任务的失败或者成功的结果

resolve 解决 函数类型的数据

reject 拒绝 函数类型的数据

二.async,await

async以及await是ES7中的标准,是为优化Promise而开发出来的 可以说async/await是异步编程终级解决方案

(1)函数的返回值为promise对象、

(2)promise对象的结果由async函数的返回值决定

两者需要同时出现,async声明的必须是一个函数,不可以是其他;
await必须在声明了async的函数中使用,否则会报错;
async、await 为promise服务;
async的本质是返回一个promise;既,不管函数内部如何,返回的总是一个promise

async function a(){};
a
async ƒ a(){}
a()
async function a(){return '我是一个promise'};
a()
Promise {<fulfilled>: "我是一个promise"}

await 也是一个修饰符,但是必须放在 async 函数内部使用, await关键字的作用 就是获取 Promise中返回的内容,resolve或者reject的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值