aysnc-await的用法

aysnc-await是promise的一种特殊语法,它可以更简洁的得到promise

aysnc function

aysnc 放在函数前定义函数,它规定了这个函数的返回值一定为promise,

// 通过new新建一个promise(旧)
// let p = new Promise(function(resolve,reject){
//     //执行一个操作

// });

// 通过async得到一个promise(新)
async function sum(){
    return 1;// 等同于 retrun Promise.resolve(1);
}
console.log(sum());

在函数前面的 “async” 表达了一个简单的事情:《即这个函数总是 "返回" 一个 promise。》

await

await只能用在aysnc的函数内,它会中断函数的执行,等待promise的完成再继续向下执行函数

// await用法,写在promise前表示等待promise结果 
let result = await p; // p为一个promise,
// 此时result的值为promise的结果,而不是这个promise p

这里await会等待p执行结束再给result进行赋值,

async function f(){
    let p = new Promise((resolve,reject)=>{
        setTimeout(()=>resolve("pending,等待promise"),2000) ;
    })
    let result = await p; // 等待,直到 promise resolve (*)
    console.log(result);
}
f();

2秒后得到promise结果,而不是直接返回promise

await会等待promise的结果,在进行操作(这里是赋值),类似于p.then()

总结

        aysnc 关键字用在函数前,保证函数返回的结果得到一个promise;await用在aysnc内的promise前,它会等待promise的结果再向下执行用函数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值