微信小程序:封装wx.request解决常见问题

版权申诉
4 下载量 39 浏览量 更新于2024-09-11 1 收藏 78KB PDF 举报
在微信小程序开发过程中,团队初次接触小程序开发,遇到的问题主要集中在网络请求的重复编写和一致性处理上。原有的代码中,每个页面的`wx.request`方法都需要单独编写,且没有统一的错误处理机制,导致当后端返回非200状态码时,无法直接进入预设的失败处理函数。为了解决这些问题,开发者创建了一个名为`apis`的目录,将所有API请求逻辑封装在一个`request`类中。 在`request`类中,进行了以下几个关键封装: 1. **基础header配置**:在构造函数中定义了默认的HTTP header,这样在后续的请求中,如果方法未指定header参数,会使用这个默认值,提高了代码复用性。 2. **方法封装**:提供了诸如`getRequest`、`postRequest`等方法,简化了网络请求的调用,开发者只需要调用这些方法,而不必每次都手动编写完整的`wx.request`对象,提高了开发效率。 3. **结果处理**:在`success`回调函数内部,根据服务器返回的状态码进行区分处理。对于200状态码,进行正常的业务处理;非200状态码则通过预留的`errorHandler`统一处理,例如处理401(未授权)这类常见异常,将其转到登录页面,避免在业务页面里重复处理这些通用错误。 4. **异常处理机制**:通过`setErrorHandler`方法,允许设置全局的异常处理器,这样即使遇到可统一处理的异常,也能在统一的位置进行处理,而不是分散在各个页面。 5. **适用范围**:`request`类不仅适用于开发者自己的业务服务端,还可以用于第三方服务的调用,增强了灵活性。 通过这个封装,代码变得更加模块化,减少了冗余,提高了代码的可维护性和扩展性。开发者可以根据需求轻松地在多个页面中复用`request`类,使得小程序的网络请求部分更加规范和高效。