## HTTP封装
### 定义全局url
config.js
```
const config = {
base_url_api:"https://douban.uieee.com/v2/movie/"
}
export {config}
```
### Class封装
引入config中的地址
```
import {
config
} from "../config";
```
自定义类HTTP
```
class HTTP {
request({url,method="GET",data={}}) {
const promise = new Promise((resolve, reject) => {
```
>调用request方法,用{ }代替param对象申明url、默认method、初始data
声明一个Promise对象,异步解决回调地狱
发送http请求
```
wx.request({
url: config.base_url_api + url,
data,
method,
header: {
'Content-Type': 'json',
},
```
>在此例中获取豆瓣接口的数据,故 'Content-Type': 'json',
请求成功
```
success: res=> {
const statusCode = res.statusCode.toString();
if (statusCode.startsWith("2")) {
resolve(res.data);
} else {
this._show_error();
}
```
>404这类请求失败和正常请求成功均可进入success
获取请求状态码(数字型),使用toString()方法将其转换成字符
以便使用startsWith方法来判断其是否以2开头,即真正的请求成功
请求失败
```
},
fail: err=> {
reject(err);
this._show_error();
}
})
})
return promise;
}
_show_error() {
wx.showToast({
title: '网络错误',
icon: 'none'
})
}
}
```
>调用promise自带方法reject,并显示错误
```
export {
HTTP
};
```
>向外暴露封装好的HTTP类
- 项目启动配置
- 01.欢迎页
- 03.点击图片切换——事件绑定bindtap、catchtap
- 04.底方分页切换tabBar
- 20.音乐播放
- 06.豆瓣电影列表
- 1.App
- 2.template
- 3.movies-detail 页面详情
- 组件
- 02.地图
- 05.轮播图swiper
- 07.点击预览图片previewImage结合scroll-view
- 11.web-page
- 14.form表单
- 08.头像图片更换chooseImage
- 09.上拉刷新OnReachBottom
- 10.使用缓存(收藏、分享状态)
- 12.导航条加载、页面加载、导航标题设置
- 13.弹出框
- 15.demo
- data
- local.js
- pages
- welcome(欢迎页)
- index
- index.wxml
- index.wxss
- index.js
- index-detail
- index-detail.wxml
- index-detail.wxss
- index-detail.js
- template
- yuedu-list.wxml
- yuedu-list.wxss
- map
- movies
- movies.wxml
- movies.wxss
- movies.js
- movies-grid
- movies-grid-template.wxml
- movies-grid-template.wxss
- movies-item
- movies-item-template.wxml
- movies-item-template.wxss
- movies-more
- movies-more.wxml
- movies-more.wxss
- movies-more.js
- movie-detail
- movie-detail.wxss
- movie-detail.wxml
- movie-detail.js
- star
- star-template.wxml
- star-template.wxss
- web-page
- web-page.wxml
- web-page.js
- post-img
- post-img.wxml
- post-img.js
- post-img.wxss
- 演员列表图
- 列表图.wxml
- 列表图.wxss
- 列表图.js
- utils
- utils.js
- app.js
- app.json
- app.wxss
- 16.事件冒泡
- 18.Tip
- 框架
- 17.模板
- 19.组件模板和样式(slot)
- component构造器
- 组件事件
- behaviors
- wxs
- HTTP封装
- models使用封装HTTP
- 更多有关promise封装的例子
- 生命周期
- 注意: