
封装 promise 的方式
对于给定的代码片段,可以采用如下方式将其封装成 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((res) => {
if (res.code == 100) {
var homelist = res.data;
that.setData({
homelist1: homelist
});
resolve(res); //将结果传递给 Promise
} else {
_tip2.default.toast(res.data);
}
});
});
}修改后,可以通过 this.home_barlist1().then 直接调用,并获取 promise 的结果。
与原代码相比,封装后的 promise 在使用时更加灵活,可以方便地与其他异步操作进行组合处理。
需要注意的是:
- promise 的实例化应在箭头函数内部,以确保正确绑定 this 上下文。
- 在 resolve 中传递的数据就是 promise 的最终结果。
- promise 的 then 方法返回一个新的 promise,可以继续进行链式调用。










