async表示函数里有异步操作,await表示紧跟在后面的表达式需要等待结果。

async函数的await命令后面,可以是 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时会自动转成立即 resolved 的 Promise 对象)。

async函数的返回值是 Promise 对象,这比 Generator 函数的返回值是 Iterator 对象方便多了。你可以用then方法指定下一步的操作。

async函数就是generator的语法糖。
语法:

  • async返回一个Promise对象

async函数内部return返回的值,会成为then方法回调函数的参数。

async function f(){
   return 'hello jier';
}
f.then(v => console.log(v))
//   "hello jier"

上面f内部返回的值,会被then方法回调函数接收到。
async内部函数抛出错误,会导致Promise对象变成reject状态。抛出的错误会被catch接收。

  • 正常情况下,await后面是一个Promise对象。如果不是,就是一个立即resolve的Promise对象。

dabaiaijianshen
18 声望6 粉丝