如何在小程序中封装函数为 Promise 并获取请求数据?
promise 封装问题解答
在小程序中,我们想要封装函数为 promise,以便可以通过 .then() 方法调用。下面是您提供代码的 promise 封装修改思路:
原本的 home_barlist1 函数中,发送请求并成功后会修改 homelist1 数据,但没有返回任何值。我们需要在请求成功后返回一个 promise 并将其解析。
修改后的代码如下:
home_barlist1: function home_barlist1() { return new Promise((resolve, reject) => { var that = this; _wxRequest2.default.post({ 'url': _api2.default.home_barlist, 'data': { show_type: 4 } }).then(function (res) { if (res.code == 100) { var homelist = res.data; that.setData({ homelist1: homelist }); resolve(res); // 解析 Promise,传递响应数据 } else { _tip2.default.toast(res.data); } }); }); },
在修改后的代码中,我们将 resolve(res) 添加到请求成功的回调函数中,当请求成功时解析 promise,并将响应数据作为参数传递给 resolve 函数。这样,我们就可以在外部使用 .then() 方法获取请求的响应数据了。