精慕HU
function traverse (arr) { let i = 0 let len = arr.length return function recursion (d) { if (i >= len) return Promise.resolve(d) // 最后一次请求的结果 let data = arr[i++] // let params = { // data是循环的数据,d是上次请求返回的数据 // data, // d // } return new Promise((resolve, reject) => { // promise替换成你的异步请求 setTimeout(() => { resolve(data + d) }, 1000) }).then(d => { // 处理请求后的数据 console.log(d) recursion(d) // 把请求后的数据传给下一次调用 }) }}var arr = [1, 2, 3, 4]var fun = traverse(arr)fun(0).then(console) // 打印最后一次请求的结果