Promise的简单认识
Promise 是ES6中对异步编程的一种解决方案,可以避免出现回调地狱
Promise最基本的语法
new Promise((resolve, reject) => {
setTimeout(()=>{
resolve('data');
reject('error')
},1000)
}).then((data)=>{
console.log(data)
}).catch((error)=>{
console.log(error)
})
这里我们用定时器模拟异步事件:
resolve与reject它们两个也是函数,会根据请求数据的成功和失败来决定调用哪一个。
请求成功,就在then( )里面执行resolve函数,请求失败在catch( )里面执行rejecte函数。
Promise 的链式调用
// 第一次网络请求
new Promise((resolve, reject) => {
setTimeout(()=>{
resolve('A')
},1000)
}).then((A)=>{
// 执行第一次网络请求
console.log('AAA');
// 对执行结果进行第一次处理
return new Promise((resolve, reject) => {
resolve(A+'BBB')
}).then((A)=>{
// 第一次处理结果
console.log(A);
//对执行结果进行第二次处理
return new Promise((resolve, reject) => {
resolve(A+'CCC')
})
}).then((A)=>{
//第二次处理结果
console.log(A)
})
})
省略掉Promise,resolve
new Promise((resolve, reject) => {
setTimeout(()=>{
resolve('A')
},1000)
}).then((A)=>{
console.log('AAA');
return A + 'BBB'
}).then((A)=>{
console.log(A);
return A + 'CCC'
}).then((A)=>{
console.log(A)
})