https://es6.ruanyifeng.com/?search=promise&x=0&y=0#docs/async
- async 函数是 Generator 函数的语法糖。
- async函数返回一个 Promise 对象。
- await命令只能出现在 async 函数内部,否则都会报错。
- async函数完全可以看作多个异步操作,包装成的一个 Promise 对象,而await命令就是内部then命令的语法糖。
// 例1
async function asyncPrint(value, ms) {
await new Promise( res => {
console.log('wait')
setTimeout(res, ms)
})
console.log(value)
}
asyncPrint('hello world', 1000)
// 例2
async function f() {
// 等同于
// return 123;
return await 123;
}
f().then(v => console.log(v))
// 例3
// 有多个await语句,可通过try catch捕获错误
async function f() {
try {
await Promise.reject('error')
}catch(e) {
}
return await Promise.resolve('hello world')
}
f().then( v => console.log(v))
网友评论