JavaScript es8 async
1 async函数 返回一个promise类型
2 promis类型有返回的结果决定async结果
3, async 里面可以不用包含await
async function aa(){
//返回值是个非promise的值,则此方法返回的状态(fulfilled),且返回值是1 //return 1
//如果返回一个异常
//throw "too low"; //[[PromiseState]]: "rejected",返回错误,
//[[PromiseResult]]: "too low", c错误信息为 异常信息
//返回一个promise对象
return new Promise(function(resolve, reject){
//获取到远程数据
resolve('这是远程读取的数据'); //返回的如果是resolve,则async 整个返回的也是
})
}
let a = aa();
a.then(res=>{
//成功打印返回数据
console.log(res)
},err=>{
//rejuect 返回错误信息
console.warn(err)
})
console.log(a);
2 await,
运行必要条件
await 必须要包裹在async 里面,
await 右边是一个promise对象
await 返回的是promise的成功值
await 的promis 失败,抛出异常就需要try-catch 捕获
async function main1(){ try { await new Promise((resolve,reject)=>{
//请求异步的数据,如果超时, 请求出错,或无误,分别用下面两个结果返回 // resolve('ok') reject('shibai') }) } catch (error) { console.log('---', error) } } let bbbb = main1();
只是查找方便的总结