js: async/await

当你使用 async 关键字定义一个函数时,这个函数会返回一个 Promise。而当你在这个函数内部使用 await 关键字时,你实际上是在“等待”一个 Promise 的解决(fulfilled)或拒绝(rejected)。在等待期间,async 函数会暂停执行,并允许其他代码(包括其他微任务或宏任务)运行。

// 假设有一个返回Promise的函数  
function fetchData() {  
  return new Promise((resolve, reject) => {  
    setTimeout(() => {  
      resolve('Data fetched!');  
    }, 1000);  
  });  
}  
  
// 使用async/await的异步函数  
async function processData() {  
  console.log('Starting data processing...');  
  // await会暂停当前函数,等待Promise解决  
  const data = await fetchData();  
  // 当Promise解决后,下面的代码作为微任务执行  
  console.log(data);  
  console.log('Data processing finished!');  
}  
  
// 调用异步函数  
processData();  
  
// 同步代码会立即执行  
console.log('Processing started outside async function.');  
  
// 输出顺序:  
// "Starting data processing..."  
// "Processing started outside async function."  
// (等待1秒后)  
// "Data fetched!"  
// "Data processing finished!"
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值