Uni-app async结合await 将异步请求同步化

onLoad(){
    this.setAreaList();
},
methods: {
    async setAreaList(){ //这里使用异步关键字
        let area = await this.areaCache(); //这里使用了await 会等待areaCache这个方法返回数据后才会去执行下面的代码
         
            console.log(area);
    }
}
areaCache:function(){
    return new Promise((res) => {
        try {
            const value = uni.getStorageSync('storage_area');
            if (value) {
                res(value);
            }else{
                uni.request({
                    url: url,
                    data: {},
                    method:'GET',
                    header: {
                        'Access-Control-Allow-Origin':'*'
                    },
                    success: (result) => {
                        try {
                            uni.setStorageSync('storage_area', JSON.parse(result.data.items));
                            res(JSON.parse(result.data.items));
                        } catch (e) {
                            // error
                        }
                 
                    },
                    fail: (e) => {
                        res(e);
                    }
                })
            }
             
        } catch (e) {
            // error
        }
    })
}

 

posted @ 2021-03-06 21:09  温柔的风  阅读(7430)  评论(0编辑  收藏  举报