因为一起执行服务挂了,需要在调用的时候第一个调用完睡眠一段时间后再调用下一个(不能等前一个返回再调用,因为太慢了) 我姑且是这么写的,有没更好的办法呀?
this.$bus.$emit('bigLoading', true)
this.$bus.$emit('bigLoadingTip', '正在请求...')
let totalRes = await this._queryTotal(1, 1)
if (this.totalRecord === 0) {
this.$bus.$emit('bigLoading', false)
return false
}
let totalSerNum = Math.ceil(this.totalRecord / 100)
let totalSer = []
// let failFlag = 0
let sernum = 0
for (let i = 1; i < (totalSerNum + 1); i++) {
setTimeout(() => {
totalSer.push(this._queryTotal(i, 100).finally(() => {
sernum++
this.$bus.$emit('bigLoadingTip', '正在获取,已成功返回服务数量' + sernum)
})) // 先查汇总,每次1页100条
if (i === totalSerNum) { // 汇总的服务都放进数组进行调用后进行promise all
Promise.all(totalSer).then((totalArr) => {
this._totalPrintDetail(totalArr, totalRes) // 再查明细
}).catch(() => {
this.localLoading = false
this.$bus.$emit('bigLoading', false)
})
}
}, i * 100)
}