目的:解决回调地狱
setTimeout(() => {
console.log('a')
setTimeout(() => {
console.log('b')
setTimeout(() => {
console.log('c')
},1000)
},1000)
},1000)
new Promise((resolve,reject) => {
setTimeout(() => {
resolve('a')
},1000)
}).then(res => {
console.log(res,"第一层的10行处理代码")
return new Promise((resolve,reject) => {
setTimeout(()=>{
resolve(`${res}111`)
},1000)
}).then(res => {
console.log(res,"第二层的10行处理代码")
return new Promise((resolve,reject) => {
setTimeout(() => {
resolve(`${res}222`)
},1000)
}).then(res => {
console.log(res,"第三层的10行处理代码")
},err => {})
},err => {})
},err => { console.log(err) })
new Promise((resolve,reject) => {
setTimeout(() => {
resolve('a')
},1000)
}).then(res => {
console.log(res,"第一层的10行处理代码")
throw 'error message'
}).then(res => {
console.log(res,"第二层的10行处理代码")
return Promise.resolve(res + '222')
}).then(res => {
console.log(res,"第三层的10行处理代码")
}).catch(err => console.log(err))
new Promise((resolve,reject) => {
setTimeout(() => {
resolve('a')
},1000)
}).then(res => {
console.log(res,"第一层的10行处理代码")
return res + '111'
}).then(res => {
console.log(res,"第二层的10行处理代码")
return res + '222'
}).then(res => {
console.log(res,"第三层的10行处理代码")
}).catch(err
需求:同时发送两个请求
Promise.all([
new Promise((resolve, reject) => {
setTimeout(() => {
resolve({ name: "a" });
}, 1000);
}),
new Promise((resolve, reject) => {
setTimeout(() => {
resolve({ name: "b" });
}, 1000);
})
]).then(res => { console.log(res); });
axios.all([axios({
url:''
}),axios({
url:''
})]).then(axios.spread((res1,res2) => {
console.log(res1)
}))