ES6 promise异步函数

关于异步操作,我相信各位都已经耳熟能详了
今天就讲讲,大家最常用的promise以及async await两个函数,以及区别

promise

Promise 异步处理
Promise 用来表示一个异步操作的最终完成或者失败

Promise 的状态
pending 初始化的状态,正在进行,还没有完成或者失败 fulfilled 完成状态 rejectd 失败状态

Promise 的创建

var promise = new Promise((resolve,reject) =>{
 if(true){ 
resolve() // 将promise的状态变成 已完成
 }else{
  reject() // 将promise的状态变成 已失败 } 
  })

resolve 和 reject 只能触发一个

特点
promise 创建之后立即执行
promise 状态改变之后不能再发生变化

方法
.then(() =>{ // 当 resolve 调用的时候要执行的代码 },()=>{ // 当 reject 调用的时候要执行的代码 })
.catch(err => { console.log(err) 当 reject 调用的时候 要执行的代码 })
.then(null,err =>{ console.log(err) 当 reject 调用的时候 要执行的代码 })
}

async

async
异步函数

创建异步函数

var p = new Promise((resolve,reject)=>{
     resolve('成功') 
 }) 
 async function a(){ 
    var result = await p;
  }

await 代表等待 p执行完成

执行结果
async的执行结果是个 promise 对象

二者区别

  1. promise是ES6,async/await是ES7
  2. async/await相对于promise来讲,写法更加优雅
  3. reject状态: promise错误可以通过catch来捕捉,建议尾部捕获错误, async/await既可以用.then又可以用try-catch捕捉
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值