如何优雅的让小程序的request请求支持callback & Promise的写法

本文介绍了如何在微信小程序中让request请求同时支持Promise和callback方式。通过分析小程序的异步API特性,利用Promise和Object.defineProperty对request进行封装,使得在没有success回调时返回Promise,从而实现两种调用方式的兼容。
摘要由CSDN通过智能技术生成

前言

随着Promise在被广泛的使用和解决回调地狱的问题,以至于我们只要在发ajax请求的时候就会想起来去使用它。最近在使用小程序的请求request就想当然的使用then的方式来获取结果,然并卵。。。

于是就去小程序官网巴拉下资料小程序文档链接, 仔细翻阅得到结果如下:

异步 API 返回 Promise

基础库 2.10.2 版本起,异步 API 支持 callback & promise 两种调用方式。当接口参数 Object 对象中不包含 success/fail/complete 时将默认返回 promise,否则仍按回调方式执行,无返回值。

注意事项:部分接口如 request 等等, 它们的 promisify 需要开发者自行封装。

那么我们就来对request 封装,使它支持callback & promise 两种调用方式

一、关于Promise的一些基本介绍和使用

此处只是简单的概述一些基本理念和表现形势,以帮助能理解后续的实现(没有基础的同学,自行度娘和google)

Promise 对象用于一个异步操作的最终完成(或失败)及其结果值的表示。简单点说,它就是用于处理异步操作的,异步处理成功了就执行成功的操作,异步处理失败了就捕获错误或者停止后续操作。

一般表示形式为:

new Promise(
    /* executor */
    function(resolve, reject) {
        if (/* success */) {
            // ...执行代码
            resolv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值