循环上面的数组进行数据请求,每次发送该数组中的一个元素(即第一次发送0的四个对象,成功后发送1的四个对象,以此类推,当发送完8后,停止));
问题是:应该发送9次就好了,现在发送了33次。不知道什么原因。
var datas = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13]
]
// 模拟ajax请求
function upload (json) {
return new Promise(resolve => {
console.log('sendData: ', json)
setTimeout(() => {
resolve(json)
console.log('receiveData: ', json)
}, 2000)
})
}
datas.reduce(async (prev, cur, i) => {
let data = JSON.stringify(datas[i])
await prev
return upload(data) // this.$api.post封装成一个promise,前面一定要加return
}, Promise.resolve())
// sendData: [1,2,3,4]
// 2s后
// receiveData: [1,2,3,4]
// sendData: [5,6,7,8]
// 4s后
// receiveData: [5,6,7,8]
// sendData: [9,10,11,12]
// 6s后
// receiveData: [9,10,11,12]
// sendData: [13]
// 8s后
// receiveData: [13]
问题: