t***@163.com
t***@163.com
  • 发布:2019-02-13 23:07
  • 更新:2019-10-18 16:11
  • 阅读:13256

async+await在uniapp里无法实现异步问题同步化怎么办?请赐教!

分类:uni-app
async txbrequest(url,dataobj) {  
            await uni.request({  
                    url: url, //仅为示例,并非真实接口地址。  
                    data: dataobj,  
                    success: function(res) {  
                        return res.data  
                    }  
                })  
            }

先定义了一个异步同步化的获取数据方法
在created里

var _this = this; //txb非常关键,保证指向正确    
                var url = _this.weburl + "index.php?m=txbmobileapp&f=index&v=get_block";  
                let txbdata =_this.txbrequest(url, {});

可是获取不到txbdata,还是异步的,我这写法有啥问题吗?

2019-02-13 23:07 负责人:无 分享
已邀请:
t***@163.com

t***@163.com (作者) - 80后

async txb_ajax_request(url, obj) {  
                //返回一个promise实例。  
                return await new Promise((resolve, reject) => {  
                    uni.request({  
                        url: url,  
                        data: obj,  
                        success: (result) => {  

                            resolve(result.data);  
                        },  
                        fail: (e) => {  
                            reject(e);  
                        }  
                    })  
                })  
            }

正确的姿势是这样,结题

2***@qq.com

2***@qq.com

你好,方便留一个联系方式吗,我是初学者不太明白您写的代码

t***@163.com

t***@163.com (作者) - 80后

顶一下!!!

关中大侠

关中大侠

你这个写法不对, await 后面跟的是 promise的函数,而不是回调函数,你需要把request包装一下

  • t***@163.com (作者)

    好的谢谢,我明白了

    2019-02-14 09:59

t***@163.com

t***@163.com (作者) - 80后

_this.txb_ajax_request(url, {}).then((txbdata) => {  
                    for (let i = 0; i < txbdata.length; i++) {  
                        //模板要求标题对象格式一个是name,一个是id  
                        //例如:tabBars=[{name:'田希彬',id:'txb'}]  
                        //因为返回的数组对象是键名是cid,需要把键名改成id,才能使滑动列表让标题跟随滑动  
                        txbdata[i].id = txbdata[i].cid;  
                        _this.tabBars.push(txbdata[i]); //属性  
                    }  
}

外部调用

  • 你好,方便教我一下,我不太懂这个代码。

    2019-11-15 17:17

9***@qq.com

9***@qq.com - 专业开发直销分销类软件

完蛋啊,我完全看不明白 , 我是废了么

showker

showker

不错不错

该问题目前已经被锁定, 无法添加新回复