基本原理
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('页面被外星人抓走了')
})
},