这次给大家带来微信小程序的wx.request 与promise的结合使用,微信小程序的wx.request与promise结合使用的注意事项有哪些,下面就是实战案例,一起来看一下。
在使用promise,我的多次异步代码通常是这样的.
ajax(url, function (res){
ajax(res.url, function(res) {
ajax(res.url, function(res) { if (res.status == '1') {
ajax(res.url, function(res) {
...
}
} else if (res.status == '2') {
ajax(url2, function(res) {
...
}
...
}
}
}
);
这种流程是很耗费心力并且脆弱的,体验很糟糕,因此,在这次小程序的开发中为了更好的体验,我开始使用了promise.
代码如下,这样一来,当我们第二个请求需要第一个参数判断时,可以不再陷入回调地狱,
// 小程序与后端情求接口
let baseurlpromise = 'https://xxx.com'; // 定义方法返回promise参数,obj 为wx.request 方法中所需参数
let req = function (obj) { return new promise(function (resolve, reject) {
wx.request({
url: baseurlpromise + obj.url,
data: obj.data,
header: obj.header,
method: obj.method == undefined ? get : obj.method,
success: function (data) { // 回调成功执行resolve resolve(data)
},
fail: function (data) { // 回调失败时
if (typeof reject == 'function') {
reject(data);
} else {
console.log(data);
}
},
})
})
} // 执行req 方法,传入第一个请求,
let req1 = req({
url: '第一次请求链接,与baseurlpromise 相结合',
data: {},
}) // 当需要多次请求时加入
req1.then(function (data) {
console.log('promisethen1')
console.log(data); return req({
url: '第二次请求链接',
})
}).then(function (data) {
console.log('promisethen3')
console.log(data); return req({
url:'第三次请求链接'
})
}).then(......).catch(function(data){
console.log(promisecatch)
})
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
vue指令的使用
js闭包的使用
以上就是微信小程序的wx.request与promise的结合使用的详细内容。