1. 不处理异常;更简洁
      
async function loadData(url) {
  let res = await fetch('./data2021/'+url);
  let json = await res.json();
  console.log(json);
}
loadData('stu.json');
      2. 处理异常;更健壮
      
async function getData() {
  try {
    let res = await fetch('./data2021/stu.json');
    console.log(res);
    let json = await res.json();
    console.log(json);
  } catch (err) {
    console.log(err);
  }
}
      
async function addData() {
  try {
    let obj = {
      author: 'cnplaman',
      bookname: 'web',
      publisher: 'cn',
    }
    let res = await fetch('http://ajax-base-api-t.itheima.net/api/addbook', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify(obj)
    });
    console.log(res);
    let json = await res.json();
    console.log(json);
  } catch (err) {
    console.log(err);
  }
}
      . 可以使用 finally{} 控制过程,如执行清理操作,如关闭文件、释放资源或记录日志;或者使用加载器;注意和 Promise 的 finally() 区别开来,虽然作用一致
      
async function getData() {
  container.classList.add('loading')
  try {
  } catch (err) {
  } finally{
    container.classList.remove('loading')
  }
}