• vue中使用 async & await


     获取用户信息userid ->获取地址列表 ->获取用户的所在地址(根据地址列表循环,显示所在的地址)->渲染歌曲列表
    mounted:async function() {
        if(GetUrlParam('cityId')==0||GetUrlParam('cityId')){
            let res=await this.getAreaList();
            this.arrAreaList=res.data.provinceList;
            this.getCityName(GetUrlParam('cityId'));
            this.getSingerList();
        }else{
            this.getUserInfo();
        }
        
    },
    methods: {
        // 获取用户信息
        getUserInfo() {
                // 未登录,端外 默认北京
            if (!isVVmusic) {
                this.asyncFn();
                return;
            }
            vvsing.evoke('getContext', null, function(data) {
                if( data.isLogined==1){
                    let userId = data.userInfo.vVNum || data.userInfo.VVNum;
                    this.asyncFn(userId);
                }else{
                    this.asyncFn();
                }
            }.bind(this));
    
        },
        // 异步操作
        async asyncFn(userId){
            userId=userId||'';
            let res=await this.getAreaList();
            // 处理返回结果
            this.arrAreaList=res.data.provinceList;
    
            let res1=await this.getUserAddress(userId);
            console.log(res1);
            // 处理返回结果
            if(!res1||!res1.data.discover){
                this.curProvinceName='北京';
                this.curProvinceID=1202;
            }else{
                let cityId = res1.data.discover.cityId+'';;
                this.getCityName(cityId);
            }
                
            this.getSingerList();
        },
        // 获取地址列表
        getAreaList(userId,callBack,cityId){
                return axios.get(baseURL + 'cms/api/fetch.do?cmd=discoverService|selectProvince&req={}')
        },
        // 获取用户地址信息
        getUserAddress(userId){
            if(!userId) return;
            let req=encodeURIComponent(`{"query":{"userId":${userId}}}`);
            return axios.get(baseURL + 'cms/api/fetch.do?cmd=discoverService|selectuserCityId&req='+req)
            
        },
        // 获取地址名称
        getCityName(cityId){
            if(cityId==0){
                this.curProvinceName='火星';
                this.curProvinceID=cityId;
            } else { //国内
                //其他地区 定位北京
                this.curProvinceName='北京';
                this.curProvinceID=1202;
                this.arrAreaList.some(function(item) {
                    if (cityId.substring(0, 4) ==item.provinceID) {
                            this.curProvinceName=item.provinceName;
                            this.curProvinceID=cityId.substring(0, 4);
                            return true;
                    } 
                }, this);
    
            }
        },
        // 获取歌手列表
        getSingerList(){
            var req=encodeURIComponent(`{"query":{"gender":"${this.curGender}","provinceID":${this.curProvinceID}},"page":{"pageSize":20,"pageNo":${this.curPage}}}`);
            axios.get(baseURL + 'cms/api/fetch.do?cmd=discoverService|selectProvincePage&req='+req, {
                emulateJSON: true
            }).then((res)=> {
                var data = res.data;
                this.arrSingerList=this.arrSingerList.concat(data.discoverList);
    
            },(err)=> {
                console.log(err);
            });
        },
        
    }
  • 相关阅读:
    OO第二单元总结-上上下下的快乐
    OO第一单元总结
    OO第四单元博客作业
    OO第三单元博客作业
    OO第二单元博客作业
    OO第一次博客作业
    Python Selenium实现浏览器自动化操作
    Python命名规范
    OO_UNIT4 & OO_2020 SUMMARY
    OO_UINT3_2020
  • 原文地址:https://www.cnblogs.com/yuesu/p/9593415.html
Copyright © 2020-2023  润新知