最典型的用途 是 实现微信9张图片上传,可以得到准确的结果,然后做不同跳转,ajax 和 单独promise 做不到
async 的返回的一定是一个promise 至于 是进入 resolve 的then() 还是 进入reject 的 catch(){} 可以让async 内同步写法的判断
结合 try - catch - throw
return 是 resolve 的 then()
throw 是 reject 的 catch()
例子见mshop客户端的发帖前联网检测是否上传用户头像和昵称部分
export let UpdateUdataFromNet = async ()=>{
//
if(!global_Uid){
//MshopToast('用户数据同步开始失败')
throw 'skip'
}
try {
let response = await fetch(global_API_URL+'?action=UpdateUdataFromNet&uid=' + global_Uid)
let responseJson = await response.json()
if (responseJson.error) {
MshopToast(responseJson.error)
throw responseJson.error
}
global_Uinfo = JSON.parse(responseJson.content)
Push.RegDevicetoken()
return;
} catch (error) {
MshopToast('用户数据同步位未能完成')
throw new Error(error);
}
}