- 需求的场景描述(希望解决的问题)
如下是我的代码,预期要实现的功能为:两个集合联合查询(这里有一个for循环遍历所查到的多条数据,现在有两条数据,所以会循环查询两次),第一个集合查询出数据把他放进数组
arry_process_nodef,然后在第二个集和操作过程中把他读出来,现在问题是,在第二个集合查询过程中,没有正确输出我j=0时的数组(arry_process_nodef)值:["o-pp75Yud88psPI1utBASnUffUiM+@GOD"]
db.collection('process_information_col').where({
process_chain: db.RegExp({
regexp: user_openid,
options:'i'
})
}).get().then(res => {
var arry_length = res.data.length
var arry_process_nodef = new Array()
var that=this
console.log('res.data.pro:',res.data)
for (let j = 0; j < arry_length;j++){
console.log('j:',j)
arry_share_record_process = res.data[j].process_chain.split(";");
for (let arry_process_num = 0; arry_process_num < arry_share_record_process.length-1; arry_process_num++){
console.log('arry_process_num:', arry_process_num)
arry_process_nodef[arry_process_num] = arry_share_record_process[arry_process_num+1]
console.log('arry_process_nodef:', arry_process_nodef[arry_process_num])
}
db.collection('release_content_col').where({
_id: res.data[j].id_release_information
}).get().then(
res => {
console.log('arry_process_nodef:', arry_process_nodef)
console.log('res.data.rel:', res.data)
arry_share_record[j] = res.data[0]
if (j == arry_length-1){
setTimeout(function () {
console.log('arry_share_record', arry_share_record[0])
that.setData({
shareRecordData: arry_share_record
})
}, 1000) //延迟时间 这里是1秒
}
}).catch(err => {
console.log('[查询失败]')
})
}
}).catch(err => {
console.log('[查询失败]')
})
}
- 希望提供的能力