如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
//属性层 util/http.js //基本属性 config.js ``` const config={ api_base_url:"http://www.wangmingchang.com/v1/", appkey:"T********" } export {config}//导出 ``` 函数层 http.js ``` import {config} from '../config.js' //定义错误 const tips={ 1:'默认错误', 1005:'appkey错误', 1007: '网址错误', 3000:'该期内容不存在' } class HTTP{ //解构 加上花括号,可通过的对象方式传参 request({url, method = 'GET', data = {}}){ return new Promise((resolve,reject)=>{ this._request(url,resolve,reject,data,method) }) } _request(url,resolve,reject,method='GET',data={}){ wx.request({ url: config.api_base_url+url, method:method, data:data, header:{ 'content-type':'application/json', 'appkey':config.appkey }, success:(res)=>{ let code = res.statusCode.toString() //es6 新 startsWith 以什么开头 endWith 以什么结尾 if(code.startsWith('2')){ // 成功时返回的结果 resolve(res.data); }else{ //失败时返回 reject() let error_code = res.data.error_code this._show_error(error_code) } }, fail:(err)=>{ reject() this._show_error(1) } }) } _show_error(error_code){ if(!error_code){ error_code=1 } // console.log(error_code) const tip = tips[error_code] wx.showToast({ title:tips?tip:tip[1], icon: 'none', duration: 1500, }) } } export {HTTP}; ``` model层 ``` import { HTTP } from '../util/http-p.js'; class bookModel extends HTTP{ getHotList(){ return this.request({ url:'book/hot_list' }) } getComments(bid) { return this.request({ url: `book/${bid}/short_comment`//es6用法 }) } } export { bookModel } ``` 控制器层 ``` //引入 import {bookModel} from '../../model/bookModel.js' //实例化 const BookModel = new bookModel() //使用 onLoad: function (options) { const hotList = BookModel.getHotList() hotList.then(res=>{ this.setData({ books:res }) }) }, ```