一、Promise简单的封装使用
1、简单的封装函数
// promise发起网络请求
//发起网络请求 支持跨域 请求与处理在一起,通过回调方式来进行,避免回调地狱
//解决回调地狱 es6提供promise ==> es7 async await(目前微信小程序不支持)
//使用promise 请求与处理分离
reqData(){
return new Promise((suc,err)=>{
var reqTask = wx.request({
url: 'https://www.baidu.com',
data: {},
header: {'content-type':'application/json'},
method: 'GET',
dataType: 'json',
responseType: 'text',
success: (ret)=>suc(ret),
fail: ()=>err,
complete: ()=>{}
});
})
},

2、wxml文件
<button class="btn" type="primary" bindtap="onTap">
按钮文本
</button>

3、调用函数(使用)
//使用
onTap(){
let p1=this.reqData(); //p表示promise对象
//promise對象中有then表示成功處理,catch表示失败处理
//then 可以传2个参数,第1从参数,成功处理;第2参数,失败处理
//then(succ=>{},err=>{})
//解决回调问题,同时Promise没有让return权力消失
p1.then(ret1=>{
console.log(ret1);
let p2=this.reqData();
return p2
}).then(ret2=>{
console.log(ret2)
})
}

二、封装成所有页面共用的函数
1、在主目录下utils创建新的js文件http.js

2、封装函数
function httpRequest(url,data={},method){
return new Promise((resolve, reject)=>{
wx.request({
url,
data,
header: {'content-type':'application/json'},
method,
dataType: 'json',
success:ret=> resolve(ret),
fail:err=>reject(err)
})
})
}
//导出函数
export {httpRequest};
3、可以在任何页面导入使用
import {httpRequest} from '../../utils/http.js'
// pages/model/model.js
Page({
data: {
},
onTap2(){
let url="https://www.baidu.com/"
httpRequest(url).then(ret=>{
console.log(ret)
})
},
