当请求数据过多时,前一个请求还未执行完就运行了下一个,需要前一个请求获取到需要的数据在执行下一个请求时可以用到Promise
基本用法:
let promise = new Promise(function(resolve, reject) {
let x = 1
console.log('x', x)
resolve(x)
})
promise.then(function(x) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
let y = 2
let x = 3
console.log('延迟3秒', x, y)
resolve([x,y])
}, 3000)
})
}).then(function([x,y]) {
return new Promise(function(resolve, reject) {
let z = 5
console.log('z', z)
resolve([x,y,z])
})
}).then(function([x,y,z]) {
console.log(x, y, z)
})
运行结果: