小程序promise

97 阅读1分钟

基本原理

Promise 是一个类,在执行这个类的时候会传入一个执行器,这个执行器会立即执行

Promise 会有三种状态

Pending 等待 Fulfilled 完成 Rejected 失败

状态只能由 Pending --> Fulfilled 或者 Pending --> Rejected,且一但发生改变便不可二次修改;

Promise 中使用 resolve 和 reject 两个函数来更改状态;

then 方法内部做但事情就是状态判断

如果状态是成功,调用成功回调函数 如果状态是失败,调用失败回调函数

第一步建立http文件夹 再建立http.js

第二步封装具体的请求,建立api.js

const loginHttp = (path,data,method) => http(path,data,method)
const indexHttp = (path,data,method) => http(path,data,method)

module.exports = {
    loginHttp,
    indexHttp
}

第三步在login页面调用接口:

Page({
    data: {
        email:'',
        pwd:'',
        errEmail:'',
        errPwd:''
    },
    login:function(){
        if(this.data.email==''){
            this.setData({
                errEmail:'邮箱不能为空'
            })
            return
        }
        if(this.data.pwd==''){
            this.setData({
                errPwd:'密码不能为空'
            })
            return
        }
        loginHttp(
            '/api/auth/login',
            {email:this.data.email,password:this.data.pwd},
            'POST'
        )
        .then(res=>{
            let {access_token}  = res;
            wx.setStorageSync('token', access_token)
            wx.switchTab({
              url: '/pages/home/home',
            })
        })
        .catch(err=>{
            console.log(err)
            console.log('页面被外星人抓走了')
        })
    },