async/await 用法总结

技术分享 2019-10-01 00:00:00
async 是单独协程的异步运行,并且async的内部通过多个 await 实现内部同步写法,解决全部异步的时序错乱问题
最典型的用途 是 实现微信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);
}


}
咨询小瓶科技
咨询我们
顶部