- 需求的场景描述(希望解决的问题)
如下是代码,在一个for循环中 为什么没有顺序打印j的值,而是在前边j循环打印完0,1 然后才执行下边的代码,而且后边的打印为什么是1,0?
if (e.currentTarget.dataset.index == 1){
var arry_share_record = new Array()
var arry_share_record_title = new Array()
var arry_share_record_process = new Array()
const db = wx.cloud.database({
env: ‘test-240128’
})
//查询分享记录
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(‘j001:’,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]
console.log(‘j002:’, j)
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(’[查询失败]’)
})
}
- 希望提供的能力