설정
"type": "module"
1. 최상위 await 를 지원하려면 package.json에서 구성해야 합니다 . 예:
"type": "module",
2. 노드 버전 >= v14.8
사용량 비교
1. 기존의 사용법
- 일반 대기는 비동기에서만 사용할 수 있습니다.
/**
* 常规await只能在async中使用
*/
async function fn1() {
const p = await Promise.resolve('我是老6')
console.log(p)
}
fn1()//我是老6
2. 최상위 사용
- 비동기식으로 await를 사용할 필요가 없습니다.
/**
* 顶层使用
*/
function fn2() {
return Promise.resolve('我不是老6呀!')
}
// 直接使用await
const resFn2 = await fn2()
console.log(resFn2)//我不是老6呀!
참고 사항||오용
- ↓와 같은 then에서 최상위 await를 사용할 수 없습니다.
/**
* 错误使用顶层await
*/
const ps1 = Promise.resolve('我是真的老6!')
const ps2 = Promise.resolve('我是真的老6!')
//在ps1的then里使用顶层await
ps1.then(res => {
console.log(await ps2())//报错
})
오류 그래프
올바르게 사용
/**
* 正确使用顶层await
*/
const ps1 = Promise.resolve('我是真的老6!')
const ps2 = Promise.resolve('我是真的老6!')
console.log(await ps1)
console.log(await ps2)
2023/5/12 22:55 맑음