站内搜索

微信小程序的wx.request与Promise的结合使用

这次给大家带来微信小程序的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)   })

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

Vue指令的使用

JS闭包的使用

以上就是微信小程序的wx.request与Promise的结合使用的详细内容,更多请关注php中文网其它相关文章!

  • 上一篇:微信小程序怎么实现数据双向绑定
  • 下一篇:Mocha与chai的使用