为了账号安全,请及时绑定邮箱和手机立即绑定

关于if语句中的异步请求

关于if语句中的异步请求

当年话下 2019-05-24 11:20:27
有一个列表需要通过异步接口获取当前位置然后再返回数据,但是我不想每次都请求这个获取位置,我就想先加个判断,有值直接获取列表,没值先获取位置再获取列表,但是问题就来了,因为他是异步的,我没办法写成下面这样:if(!hasLocation){getLocationSync()}//TODO:getStoreList然后我现在就改成了这样:if(!hasLocation){this.getLocationSync().then(this.getStoreList());}else{this.getStoreList()}请问有什么优雅的写法吗???
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

三目表达式:hasLocation?this.getStoreList():this.getLocationSync().then(this.getStoreList());
                            
查看完整回答
反对 回复 2019-05-24
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

letcacheList=Cache['list'];
newPromise((resolve,reject)=>{
if(cacheList&&cacheList.length){
resolve(cacheList);
return;
}
this.getLocationSync()
.then(list=>{
//缓存
Cache['list']=list;
resolve(list);
})
.catch(reject);
})
.then(list=>{
console.log(list);
})
                            
查看完整回答
反对 回复 2019-05-24
  • 2 回答
  • 0 关注
  • 337 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信