如何将异步请求函数 `home_barlist1` 封装成 Promise,以便使用 `this.home_barlist1().then` 进行调用?

如何将异步请求函数 `home_barlist1` 封装成 promise,以便使用 `this.home_barlist1().then` 进行调用?

promise 封装问答

问题:

如何将以下代码封装成 promise,以便可以直接调用 this.home_barlist1().then?

home_barlist1: function home_barlist1() {    //获取中间导航     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            });        } else {            _tip2.default.toast(res.data);        }    });}

答案:

该代码经封装后,调用方式为 this.home_barlist1().then:

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);            } else {                _tip2.default.toast(res.data);            }        });    });}

修改点:

将 promise 实例返回。通过箭头函数简化 _wxrequest2.default.post() 中的回调函数。在成功时将 res 作为 promise 的 resolve 值传递。

以上就是如何将异步请求函数 `home_barlist1` 封装成 Promise,以便使用 `this.home_barlist1().then` 进行调用?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1497364.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 19:27:32
下一篇 2025年12月19日 19:27:47

相关推荐

发表回复

登录后才能评论
关注微信