评论

小程序用Promise简单封装wx.request的POST请求

在app.js中引入到全局。在其他文件中就可直接用 eg:app.http.post('接口名',‘参数’).then(res=>{}) 如要加token 加在header 不知道大家是什么方法呢

const inter = ‘主域名’;
var obj={};
const post=(url,obj)=>{
return new Promise( (resolve,reject)=>{
wx.showLoading({ title: ‘加载中’,mask:true})
wx.request({
url: inter+url,
method:‘post’,
data:obj,
header: {
‘content-type’: ‘application/x-www-form-urlencoded’,
},
success: function (res) {
wx.hideLoading();
if (res.statusCode != 200) {
reject({ error: ‘服务器忙,请稍后重试’, code: 500 });
return;
}
resolve(res.data);
},
fail: function (res) {
reject({ error: ‘网络错误’, code: 0 });
},
complete: function (res) {
wx.hideLoading();
}
})
}).catch(err=>{
reject(err)
console.log(‘请求失败了’,err)
})
}

module.exports=post;

点赞 1
收藏
评论

4 个评论

  • 袁述~
    袁述~
    2019-11-16

    token放app.js。可全局引用。我叫雷锋。

    const app = getApp();

    header: {

    'cookie': app.globalData.token,

    },

    2019-11-16
    赞同 1
    回复 2
    • 陪你一起
      陪你一起
      2019-11-17
      token不是有过期时间会变吗
      2019-11-17
      回复
    • 袁述~
      袁述~
      2019-11-18回复陪你一起
      是的,一般我登录的时候重新获取设置一下token,然后token时效是24小时。
      2019-11-18
      回复
  • LinChengChun
    LinChengChun
    2019-11-19

    我是这样子使用的。

    const httpGet = (url, param, success, fail) => {

    wx.request({

    url: url, // 仅为示例,并非真实的接口地址

    data: param,

    method: 'GET',

    header: {

    'content-type': 'application/json' // 默认值

    },

    success,

    fail,

    complete(res) {

    // console.log('接口请求完成!');

    },

    });

    };


    const httpPost = (url, param, success, fail) => {

    wx.request({

    url: url, // 仅为示例,并非真实的接口地址

    data: param,

    method: 'POST',

    header: {

    'content-type': 'application/x-www-form-urlencoded' // 默认值

    },

    success,

    fail,

    complete(res) {

    // console.log('接口请求完成!');

    },

    });

    };


    const httpPut = (url, param, success, fail) => {

    wx.request({

    url: url, // 仅为示例,并非真实的接口地址

    data: param,

    method: 'PUT',

    header: {

    'content-type': 'application/x-www-form-urlencoded' // 默认值

    },

    success,

    fail,

    complete(res) {

    // console.log('接口请求完成!');

    },

    });

    };


    const httpDelete = (url, param, success, fail) => {

    wx.request({

    url: url, // 仅为示例,并非真实的接口地址

    data: param,

    method: 'DELETE',

    header: {

    'content-type': 'application/json' // 默认值

    },

    success,

    fail,

    complete(res) {

    // console.log('接口请求完成!');

    },

    });

    };



    2019-11-19
    赞同
    回复
  • LinChengChun
    LinChengChun
    2019-11-19

    get到了,我有疑问:wx.request本身就是异步的,为什么要引入Promise呢?

    2019-11-19
    赞同
    回复 1
    • 默
      2019-12-20
      因为Promise它不香
      2019-12-20
      回复
  • ㅤ国民校草ㅤ
    ㅤ国民校草ㅤ
    2019-11-16

    消灭0回复

    2019-11-16
    赞同
    回复 1
    • 燕项项
      燕项项
      2020-03-16
      楼主,可以给一个代码片段吗
      2020-03-16
      回复
登录 后发表内容