首先编写一个异步方法

  • 返回一个Promise对象
  • 有50%的几率返回正确 50%返回错误
async function asyncResult():Promise<string>{
return new Promise<string>((resolve,reject)=>{
//延时操作 使用setTimeout模拟
setTimeout(()=>{
if(Math.random()>0.5){
resolve("succ")
}
else{
reject("err")
}
},1000);
})
}

调用这个异步方法

  • 使用await 需要加async标识方法
  • 因为异步方法我们定义了reject所以要抓取异常
async function main(){

let str:string = '';
try{
str =await asyncResult();
}catch(err){
console.log(`catch err ${err}`);
}

console.log(`result is ${str}`);
}

调用main方法

  • 调用和一般方法一样
main()

Tips

  • reject可以不用实现 使用resolve来返回默认值
  • 可以多个地方reject 定义不同错误的err