@prequest/miniprogram
TypeScript icon, indicating that this package has built-in type declarations

1.5.2 • Public • Published

@prequest/miniprogram

泛小程序请求库.支持各个小程序平台、快应用、鸿蒙

安装

npm install @prequest/miniprogram

使用

由于在不同平台上使用基本一致,所以基本使用文档,请查阅 这里

原生请求实例

import { PreQuest, create } from '@prequest/miniprogram'

const prequest = create(wx.request)

prequest('/api', {
  getNativeRequestInstance(nativeRequest) {
    nativeRequest.onHeadersReceived(res => {
      console.log('响应头', res.header)
    })
  },
})

兼容

小程序中使用 async/await 需要安装 regenerator-runtime@0.11.1,框架包一般会内置这个依赖,如果没有,请自行安装,使用方式请在对应论坛进行查找。此外,由于包都是 ES6 版本的,在某些手机上可能有兼容性问题,你可以查阅这里编译代码

请求配置项

!> 下面的列表中,PreQuest 只会处理标注为 👍 的参数,其他参数将直接传入到原生请求实例。这意味着,原生请求实例不支持的参数,传入其中将无效。

Option Name Type Default Required Handle Meaning
path string none Y 👍 server interface path
method string GET N 👎 request method
baseURL string none N 👍 base server interface address
getNativeRequestInstance (value: Promise<any>) => void none N 👍 get native request instance
cancelToken CancelToken none N 👍 cancel a request
timeout number none N 👎 request timeout
params object none N 👍 url parameters
data object none N 👎 the data to be sent as the request body
responseType json | text | arraybuffer |... none N 👎 response data type
header object none N 👎 set the request header
dataType json | ... none N 👎 returned data format

此外,你也可以添加一些原生 API 支持的配置项,这部分配置项将会直接传递到原生 API 方法中。

示例:

declare module '@prequest/types' {
  interface PQRequest {
    enableHttp2?: boolean
    enableCache?: boolean
  }

  interface PQResponse {
    header: any
    cookies: string[]
    profile: any
  }
}

const instance = create(wx.request, {
  baseURL: 'http://localhost:3000'
  enableHttp2: true // You can get intelliSense here
})

// You can get intelliSense here
instance.use(async (ctx, next) => {
  ctx.request.enableHttp2
  await next()
  ctx.response.header
})

Package Sidebar

Install

npm i @prequest/miniprogram

Weekly Downloads

36

Version

1.5.2

License

MIT

Unpacked Size

18.8 kB

Total Files

14

Last publish

Collaborators

  • thomas_han