当你使用 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!"