async函数其实是Geneator函数的语法糖。
1.async函数的返回值是Promise对象,可以用then方法指定下一步的操作。async函数可以看做多个异步操作,包装成一个Promise对象,await命令就是内部then命令的语法糖。
2.async函数返回一个Promise对象,可以使用then方法添加回调函数。当函数执行的时候,一旦遇到await就会先返回,等到异步操作完成,再接着执行函数体后面的语句。
例:
async function getStockPriceByName(name){ const symbol = await getStockSymbol(name); const stockPrice = await getStockPricd(symbol); return stockPrice; } getStockPriceByName('goog').then(function(res){ console.log(res); })
函数前面的async关键字,表明该函数内部有异步操作。调用该函数时,会立即返回一个Promise对象。
3.返回Promise对象
async函数返回一个Promise对象。
async函数内部return语句返回的值,会成为then方法回调函数的参数。
async function f(){ return 'hello world'; } f().then(v=>console.log(v)) // "hello world;"
参考资料:async函数的返回值