【ES6】ES6之Promise

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


猜你喜欢

转载自blog.csdn.net/amyleeYMY/article/details/80775764