微信小程序 10 封装功能函数库

发布时间:2024-10-25 14:01

10.1 封装功能函数库


首先我们要知道,wx.request() 是一个 异步请求,即 ajax。如果你想把它 进行一个封装,那么 就要 解决 异步请求拿不到 指定数据和值的问题。

export:向外暴漏 方法 或 属性。

export default:向外暴漏方法和属性,导入的时候 可以 指定任意名字。

  1. 直接 return 返回 肯定 拿不到。
// wx.request 是一个 异步请求(底层原理是 ajax)
/*
1. 封装功能函数
    1. 功能点明确
    2. 函数内部应该保留固定的代码(静态的)
    3. 将动态的数据抽取成参数,由使用者根据自身的情况动态的传入
    4. 一个良好的功能函数应该设置形参的默认值(ES6的形参默认值)

2. 封装功能组件
    1. 功能点明确
    2. 组件内部保留静态的代码
    3. 将动态的数据抽取成 props 参数,由使用者根据自身的情况以标签属性的形式传入props 数据
    4. 一个良好的组件应该设置组件的必要性及数据类型
*/

export default (url,data = {type:2},method = "GET") => {
    let result;
    wx.request({
        url,// url:url 可以简写为 url
        data,
        method,
        success:(res) => {
            result = res;
        },
        fail:(err) => {
            result = err;
        }
    });
    return result;
}

import request from "../../utils/request"; 导入这个 写好的 功能函数模块库。

微信小程序 10 封装功能函数库_第1张图片
肯定是 拿不到 这个 数据的,因为 wx.request() 是一个 异步请求。也就是 不跟你同步,那人家可能还没执行完呢,没拿到这个数据呢,你就 result = request() 了。。肯定拿不到呀。

  1. 利用 ES6 新特性 Promise 解决异步请求 拿不到或返回不了数据的问题。

promise是一个对象,从它可以获取异步操作的消息有:all、race、reject、resolve 这几个方法,原型上有then、catch等方法。

  • Promise 对象的状态不受外界影响。Promise对象获取的是异步操作,有三种状态:pending(进行中)、fulfilled(已成功)、reject(已失败)。除了异步操作的结果,其他操作都无法改变这个状态。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号