# 42.async 和 await

  • async/await 是ES7引入的新语法, 可以更加方便的进行异步操作
  • async 关键字用于函数上 (async函数的返回值是Promise实例对象)
  • await 关键字用于 async 函数当中 (await可以得到异步的结果)
  • async作为一个关键字放到函数前面
    • 任何一个async函数都会隐式返回一个promise
  • await关键字只能在使用async定义的函数中使用
    • ​ await后面可以直接跟一个 Promise实例对象
    • ​ await函数不能单独使用
  • async/await 让异步代码看起来、表现起来更像同步代码
//  async 基础用法
# 1.1 async作为一个关键字放到函数前面
async function queryData() {
# 1.2 await关键字只能在使用async定义的函数中使用  await后面可以直接跟一个 Promise实例对象
  const ret = await axios.get('/data')
  return ret.data;
}
# 1.3 任何一个async函数都会隐式返回一个promise   我们可以使用then 进行链式编程
queryData().then(ret => {
  console.log(ret)
})
1
2
3
4
5
6
7
8
9
10
11

多个异步请求的场景

// async    函数处理多个异步函数
axios.defaults.baseURL = 'http://localhost:3000';

async function queryData() {
   #2.1  添加await之后 当前的await 返回结果之后才会执行后面的代码   
   var info = await axios.get('async1');
   #2.2  让异步代码看起来、表现起来更像同步代码
   var ret = await axios.get('async2?info=' + info.data);
   return ret.data;
}

queryData().then(ret => {
   console.log(ret)
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
上次更新: 2020/10/27 下午11:58:10