关于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,地址在文章开头~