Skip to content

请求实例

创建实例

ajax.create(config)

在实际项目开发中,我们的接口地址是通常是同个根地址,我们需要配置接口根地址方便代码的维护。而且我们对于请求和响应的都会做同样的判断,这里就可以用到拦截器,避免冗余的代码。

首先我们先新建 ajax.js 文件(文件名可自定义),用于配置项及拦截器。

js
// 引入 uni-ajax 模块
import ajax from 'uni-ajax'

// 创建实例
const instance = ajax.create({
  // 实例初始配置(对象配置)
})

// 导出创建后的实例
export default instance

对象配置

我们在创建实例时可以传递一个对象,该对象为请求实例的初始默认配置。该配置与我们在请求方法时传递的请求配置是一致的。你可以通过该文档查看详情内容。

js
// 创建实例
const instance = ajax.create({
  /* 实例初始配置 */
})

函数配置

当创建实例传入的是一个函数时,并且该函数需返回上面的配置对象。每次请求前都会执行该函数(在请求拦截器之前),然后将执行后返回值传递给请求拦截器。这里的函数参数支持 async / await 操作。

js
// 创建实例
const instance = ajax.create(() => {
  return {
    /* 实例初始配置 */
  }
})

默认配置

在 uni-ajax 中可以获取公用的请求配置。可分为全局配置和实例配置。

全局配置

ajax.defaults 2.4.1

我们上面的创建的请求实例,在应用中可以创建多个,但是它们都是共享着这个全局默认配置。在这个配置中的修改会应用到每个请求实例,但如果你的实例中配置了同样的属性,uni-ajax 取的是实例中属性。

js
// 可对 defaults 上的属性进行修改
ajax.defaults.baseURL = 'https://www.example.com/api'
// ❌ 但不能直接赋值
ajax.defaults = { baseURL: 'https://www.example.com/api' }

实例配置

instance.config 2.4.1

该属性是获取我们创建实例时所传递的实例配置。如果你在创建实例时传递的对象那么它就是对象类型,反之如果是传递的是函数则它函数类型,与你所创建时的配置相对应。要注意的是它是只读的,你不可对其修改。

js
// 假设你创建请求实例时是对象类型
const instance = ajax.create({
  baseURL: 'https://www.example.com/api'
})
instance.config.baseURL // 直接获取对象实例配置 baseURL

// 假设你创建请求实例时是函数类型
const instance = ajax.create(() => ({
  baseURL: 'https://www.example.com/api'
}))
instance.config().baseURL // 调用函数实例配置获取 baseURL

// 假设你创建请求实例时是异步函数类型
const instance = ajax.create(async () => ({
  baseURL: 'https://www.example.com/api'
}))
;(await instance.config()).baseURL // 调用异步函数实例配置获取 baseURL

Released under the MIT License.