微信小程序判断服务器返回值,让微信小程序内置函数返回promise的方法

Promise API

const promisic = function (func) {

return function (params = {}) {

return new Promise((resolve, reject) => {

const args = Object.assign(params, {

success: (res) => {

resolve(res);

},

fail: (error) => {

reject(error);

}

});

func(args);

});

};

};

进行封装并使用Promise API

封装Promise API

1.在任意文件下新建xxx.js

3987303c3b61

封装Promise API.png

2.复制Promise API的代码片段复制到上述的xxx.js文件

const promisic = function (func) {

return function (params = {}) {

return new Promise((resolve, reject) => {

const args = Object.assign(params, {

success: (res) => {

resolve(res);

},

fail: (error) => {

reject(error);

}

});

func(args);

});

};

};

export { // 一定要导出啊!~童鞋们,不然找不到的

promisic

}

不要忘记使用 export {} 语句导出

记上次搞很久很久很久很久使用时一直报错,找不到函数

使用Promise API

这里以请求服务器数据为例,使用Promise API

1.封装微信小程序内置函数(wx.request)

class Http{

/**

* Http请求

* @param url

* @param data

* @param callback

* @param method

* 在参数列表两端 添加 '{' 和 '}' 就可以json对象式的传参

*/

static async request({

url,

data,

callback,

method='GET'

}){

const res = await promisic(wx.request)({

url:config.apiBaseUrl + '/' + config.apiVersion + '/' + url,

data,

method,

header:{

appkey: config.appkey

}

// 当返回为promise之后,就不再需要回调函数了

// success(res) {

// callback(res.data)

// }

})

return res.data

}

}

export {

Http

}

可以观察到使用时的语法

promise(method)({param})

非常要注意的是,method不要写成method()

就是只要方法(函数)名即可

X promise(wx.request())({param})

√ promise(wx.request)({param})

额外内容

config.js

请求数据中一些反复的变量可以提取成一个配置文件,避免硬编码(重点是好维护啊,童鞋们~),一旦服务端的HOST地址或者API版本(API Version),只要修改配置文件的信息即可!多好~~

// 定义变量

const config = {

appkey:'F6c**********thb', // 对接秘钥

apiBaseUrl:'http://api.xxx.com', // HOST地址

apiVersion:'v1' // api版本

}

// 导出变量

export {

config

}

最后!还是记得导出export

最后!还是记得导出export

最后!还是记得导出export

export export export export export export export

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值