多then依次执行
应用场景:
我们有一个A方法ajax方法获得用户信息,我们还有一个B方法是马上要使用用户信息,当两个方法同时调用时候,我们无法判别B方法已经拿到A方法的ajax获取的用户信息,基于这样的需求,我们急需一个能让他们按照A->B的顺序同步执行的东西。
解决办法:
es6的Promise对象是可以实现同步操作的,这解决了ajax请求想同步按照顺序执行的问题。
new Promise((resolve, reject) => {
console.log(1)
resolve({
name: "第1个传递的值"
});
}).then((result) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(2, result)
resolve({
name: "第2个传递的值"
})
}, 1000)
})
}).then((result) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(3, result)
resolve({
name: "第3个传递的值"
})
}, 1000)
})
}).then((result) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(4, result)
resolve({
name: "第4个传递的值"
})
}, 1000)
})
}).then((result) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(5, result)
}, 1000)
})
})