try/catch
- 既能捕获异步异常,也能捕获同步异常
- 多个串行的异步可以使用一个try/catch捕获异常
- 报错后后续代码不会执行,正常resolve才会执行
async function a(){
try{
const res=await Promise.reject('2333')
console.log(666)
}catch(err){
console.log(err)
}
}
a()
.catch()
async function a(){
const res=await Promise.reject('2333').catch(err){
console.log(err)
}
console.log(666)
}
a()
重复尝试
function randomAjax() {
return new Promise(((resolve, reject) => {
Math.random() > 0.5 ? resolve() : reject();
}))
}
async function polling(count) {
for (let i = 0; i < count; i++) {
try {
const res = await randomAjax();
break;
} catch (err) {
}
}
}
polling(3)