热搜:pottle
当前位置: 北京小瓶科技服务社区 » IT技术 » async/await 用法总结
帖子状态  
本帖子共有 446 位阅读者, 0 个回复.
  • 回复
1条记录

admin

管理员
帖子
281 
金钱
721 
魅力
721 
威望
721 
注册
2013-04-06 
admin 发表于 2019-06-26 02:23   
async/await 用法总结
async 是单独协程的异步运行,并且async的内部通过多个 await 实现内部同步写法,解决全部异步的时序错乱问题
最典型的用途 是 实现微信9张图片上传,可以得到准确的结果,然后做不同跳转,ajax 和  单独promise 做不到


async 的返回的一定是一个promise  至于 是进入 resolve 的then() 还是  进入reject 的 catch(){}  可以让async 内同步写法的判断

结合 try - catch - throw

return 是 resolve 的 then()
throw  是 reject 的 catch()


例子见mshop客户端的发帖前联网检测是否上传用户头像和昵称部分
  1. export let UpdateUdataFromNet = async ()=>{

  2.     //

  3.     if(!global_Uid){
  4.         //MshopToast('用户数据同步开始失败')
  5.         throw 'skip'
  6.     }

  7.     try {
  8.         let response = await fetch(global_API_URL+'?action=UpdateUdataFromNet&uid=' + global_Uid)
  9.         let responseJson = await response.json()
  10.         if (responseJson.error) {
  11.             MshopToast(responseJson.error)
  12.             throw responseJson.error
  13.         }
  14.         global_Uinfo = JSON.parse(responseJson.content)
  15.         Push.RegDevicetoken()
  16.         return;
  17.         
  18.     } catch (error) {
  19.         MshopToast('用户数据同步位未能完成')
  20.         throw new Error(error);
  21.     }


  22. }
  • 回复
1条记录
河北快3开奖 北京两步彩APP 重庆时时彩 天津十一选五前三走势 北京快3 智慧彩票投注 pk10怎么玩 贵州快3走势 重庆时时彩 重庆时时彩