1.Async
Async让方法成为异步的方法 (成为一个Promise)
async function main () {
return 'example'
}
console.log(main())
该代码结果为:
Promise {'example'}
由此可知,async前缀代码已经由一个普通方法转换为一个Promise异步方法。
1.1如何获取async方法中的数据
因为Async方法返回的是一个Promise,所以一般使用Promise的方式调用数据结果。
async function main () {
return 'example'
}
// 返回Promise
main().then(data => {
console.log(data)
})
该结果为:
example
2.Await
Await在 异步方法中 阻塞该方法,直至await的异步方法执行完毕,并返回await方法的返回值
async function main () {
return 'example'
}
async function sub () {
let msg = await main()
console.log(msg)
}
sub()
返回结果为:
example
两个方法联用例子
async function main () {
return new Promise ((resolve, reject) => {
if (Math.random() <= 0.5) {
resolve('成功')
} else {
reject(new Error('失败'))
}
})
}
async function sub () {
let subFunc = await main()
console.log(subFunc)
}
sub()
返回结果为:
成功 / (node:20100) UnhandledPromiseRejectionWarning: Error: 失败
更多内容请参考:Asnyc 阮一峰教程