async...await 与 promise 的关系

首先要了解 promise :promise

代码一,了解 async 与 promise 的区别:

async function helloAsync(){
    return "helloAsync";
}
  
console.log(helloAsync())  // Promise {<resolved>: "helloAsync"}
 
helloAsync().then(v=>{
   console.log(v);         // helloAsync
})

无论 async 函数返回什么值(包括 undefined),都会被自动包装为一个 ​​已解决(fulfilled)的 Promise​​。这时会跳到 .then() 里进行执行。

async function foo() {
  return 42; // 等效于 return Promise.resolve(42)
}
const p = foo(); // p 是 Promise {<fulfilled>: 42}
console.log("p: ", p)
const res = await foo();
console.log("res: ", res)

代码二,了解 await 的使用:

function testAwait(){
   return new Promise((resolve) => {
       setTimeout(function(){
          console.log("testAwait");
          resolve();
       }, 1000);
   });
}
 
async function helloAsync(){
   await testAwait();
   console.log("helloAsync");
 }
helloAsync();

3 秒后打印:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值