小程序把接口 Promise 化

小程序把接口 Promise 化

在使用小程序接口的时候我们发现小程序的接口都是使用 successfail 进行请求成功和失败处理的。习惯了用 Promise 处理方式后发现这样写代码有点不美观(容易形成回调地狱),并且行数也会增多。接下来就来讲讲如何把小程序接口 Promise 化。

1、首先,我们要明确我们要解决的目的:把小程序接口 Promise 化。

2、 然后我们想象一下我们要实现一个怎么样的效果
原来的情况:

wx.request({
	url: '',
	data: {},
	...,
	success:res => {
		...
	},
	fail: err => {
		...
	}
})

实现后的情况:

wx.request({
		url: '',
		data: {},
		...,
	}).then(res => {
		...
	})

对比后发现,我们要解决的问题实际上只是把 successfail 提取出来,其他都是不变的,接下来我们看看是怎么封装的

function wxApiPromise (name, options) {
	return new Promise ((success, fail) => {
		let obj = {...options, ...{success, fail}};
		return wx[name](obj);
	})
}

使用方式

wxApiPromise (request, {
	data: {a: 1}
}).then(res => {
	console.log(res);
})

这样就完工啦,封装中有两点要注意的地方:

  1. 第一个是 ES6 的扩展运算符 ... 可以把两个对象合并成一个对象,如果不懂的小伙伴可以学习一下阮一峰老师的 ES6 => http://es6.ruanyifeng.com/#docs/array
  2. 第二点就是为什么 return Promise 的时候不用 resolvereject ,其实原因很简单,我们要做的就是用resolvereject 来代替 小程序中的 successfail

在下面这行中其实就已经可以用这个 obj 代替小程序中的参数了,我们需要更改 Promise 中形参 resolvereject 与小程序参数对应即可

let obj = {...options, ...{success, fail}};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值