关于Promise含义的文章太多了,这里就不说了,指路阮一峰ES6之promise
这里就举几个Promise的例子
首先需要new一个Promise实例
const testPromise = new Promise((resolve, reject) => {
if (/* 异步请求成功 */){
resolve(data)
} else {
reject(error)
}
})
resolve函数将Promise对象的状态从 pending未成功 变为 resolved成功,并将异步操作的结果,作为参数传出去
reject函数的作用是将Promise对象的状态从 pending未成功 变成 rejected失败, 并将异步操作报的错误,作为参数传出去。
Promise实例生成后,用then()方法处理成功情况,catch()方法处理失败情况(也可用then()方法的第二个参数处理失败结果,一般用catch()方法捕获异常)
testPromise.then((data) => {
// success todo
}).catch((error) => {
// failure todo
})
例如项目中经常会遇到这种情况,要在登录成功后做某些请求
const loginPromise = new Promise((resolve, reject) => {
axios.get('/api/test/login', {
params: obj
}).then((data) => {
// todo
resolve(data)
}).catch((error) => {
// todo
reject(error)
})
// ......
loginPromise.then((data) => {
// todo
}).catch((err) => {
// todo
})
简单的写了下大致用法,想要深入学习可以看看阮一峰写的ES6,地址在文章开头~