本人在开发的过程中,创建了一个异步函数来循环调用云函数。云函数是单次查询数据库中的一条数据。云函数的调用是异步的,所用了async和await异步来循环调用云函数查询数据,但显示失败,求大佬指点!!
相关代码如下:
此处 async cartfunciton(){
let i
for(i of app.globalData.cart_list){
console.log( i.cart_item_id)
此处 await wx.cloud.callFunction({
name:"get_doc_data",
data:{
id:i.cart_item_id
}
})
.then(res=>{
this.setData({
cart_database_list:this.data.cart_database_list.push(res.result.data)
})
console.log("push_success")
})
.catch(err=>{
console.log("fail")
})
console.log(this.data.cart_database_list)
}
},
获取数据不成功,返回为空
能做循环里写异步的好像就while循环吧,仅供参考,我的是可行的
//获取模块数组 async getModuleList(moduleData = {}, PageSize = 5) { let {ModuleSeq, listName, url, ModuleId, ManagerSeq} = moduleData let params = {ManagerSeq, ModuleSeq, CurrentIndex: 0, PageSize} let [err, data] = await this.$Axios(url, params) if (data) { this[listName] = data[listName] } }, //获取模块对应数组(循环执行) async getCirculation() { let length = this.moduleList.length, i = 0, ManagerSeq = this.ManagerSeq; while (i < length) { let module = moduleListUrl.find(item => item.ModuleId === this.moduleList[i].ModuleId) let moduleData = {...module, index: i, ModuleSeq: this.moduleList[i].ModuleSeq, ManagerSeq} await this.getModuleList(moduleData) i++ } },