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 後可以正常捕獲