1、async 是放在function前面的标识 代表这个函数有异步程序(当然内部可以写同步代码),如果内部有返回值,则返回值会被编程promise对象,可以使用.then .catch 等
2、await 和 async 一同使用,await 也是一个标识,标识等待这个一步程序,如果是异步也等待。
async function asyfunc () {
var a
await setTimeout(function => {
a = 1
}, 1000)
console.log(a)
}
asyfunc()
// 结果 1S后打印 1 如果没有await 会出现undefined 因为打印的时候并没有赋值
3、await 必须和async 一同使用 单独使用报错
4、等待并不会妨碍其他进程
async function asyfunc () {
var a
await setTimeout(function => {
a = 1
}, 3000)
console.log(a)
}
function func () {
console.log('1111')
}
asyfunc()
func()
// 结果
// '111'
// 1 (3秒后)
可以看到不会浪费任何性能,只有asyfunc 中的程序 会等待await 其他正常执行
5、try catch 无法捕获异步程序 ,但使用async await 后可以正常捕获