1. 静默登录 调用wx.login()
2. 请求数据要先登录,有相关权限才可进行,wx.login()会返回相关token将他们存储起来,否则报401未授权错误
3. promise是用来处理异步请求的,若为同步方法直接返回相关数据即可,调用异步promise对象的时候,不要在一个函数中调用一个函数,而是return一个函数
login () {
AuthService.wxLogin().then(res => {
if (res.code === 0) {
this.userInfo = this.$getStorageSync('userInfo')
return ShopInfoService.getShop()
}
}).then(res => {
if (res.code === 0) {
this.shopInfo = res.data[1]
return GoodService.requestGoods({shopId: this.shopInfo.id, pageSize: 1})
}
}).then(res => {
if (res.code === 0) {
this.product = res.data[0]
return this.pushStore()
}
})
},
4. onload里面不要写太多,将其中的方法封装起来再其中调用;不要写太for循环,善用数组forEach()、Object.values()[将一个对象转换为数组]
dealProducts (res) {
const result = {}
res.data.forEach((data) => {
const catalogId = data.catalogs[0].id
data.url = data.media[0].url
data.order = data.media[0].order
if (result[catalogId]) {
result[catalogId].foods.push(data)
} else {
result[catalogId] = {
foods: [
data
],
name: data.catalogs[0].name
}
}
})
return Object.values(result)
},
5. 应该设置数据预设值,请求数据需要消耗时间