async和await快捷记忆

一、async在es6里面给它们的定义是一个函数

用法:async + fn

1.执行fn会返回一个promise对象

async function fn(){
    ...
}
let a = fn();   // 这里的a就是一个Promise函数

2.如果fn里有返回值的话,fn().then((data)=>{ 这里的data就是fn里返回的值})

async function fn(){
    ...
    return 123
}
fn().then(res=>{
    console.log(res);   // 123
})

二、await是async里的一个命令

await一般后面是一个Promise对象,返回的是该Promise对象fulfilled/rejected状态下的结果,如果await后面不是Promise对象,则await命令不表示任何含义,该行表达式正常解读。

1.await+Promise对象

async function fn(){
    let a = await Promise.resolve(123);  // 等同于 await new Promise((res,rej)=>{res(123)})
    return a;
}
fn().then(res=>{
    console.log(a)   // 123
})

 2.await + 非Promise对象

async function fn(){
    let a = await 1+1
    return a;
}
fn().then(res=>{
    console.log(res)   // 2
})

 三、async+await执行顺序

async function fn(){
    // 实际应用中,await后面接的是一个函数,函数返回的结果是一个Promise
    let a = await new Promise((res,rej)=>{
        console.log(4)
        res(1)
    })
    console.log(2)
    return a
}
fn().then(data=>{
    console.log(data)
});
console.log(3)

// 输出结果:
// 4
// 3
// 2
// 1

执行顺序解读 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值