1.5.2 • Published 2 years ago

@prequest/cancel-token v1.5.2

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@prequest/cancel-token

取消请求。

安装

npm install @prequest/cancel-token

使用

对于业务开发者来说,如何利用 cancelToken 取消请求?

import { prequest } from '@prequest/xhr'
import CancelToken from '@prequest/cancel-token'

const source = CancelToken.source()

prequest.request({
  path: '/api',
  cancelToken: source.token,
})

source.cancel()

你也可以初始化一个请求实例,在页面或组件卸载时,取消所有请求

import { create } from '@prequest/xhr'
import CancelToken from '@prequest/cancel-token'

const source = CancelToken.source()

const prequest = create({ cancelToken: source.token })

useEffect(() => {
  prequest('/api1')
  prequest('/api2')
  prequest('/api3')
  prequest('/api4')

  return () => {
    source.cancel()
  }
}, [])

!> 注意:CancelToken 是一次性的,即取消请求之后,再发起请求,会被直接取消。如果有类似需求,建议在调用完取消后,再为 source 重新赋值一个 CancelToken.source

集成到请求库

对于库开发者,如何将 CancelToken 集成到请求库中?

首先需要设计将 cancelToken 作为可选参数

import CancelToken from '@prequest/cancel-token'

interface Request {
  cancelToken?: CancelToken
}

其次在 adapter 函数中,处理 cancelToken.

function adapter(opt) {
  const { cancelToken } = opt

  return new Promise((resolve, reject) => {
    if (cancelToken) {
      cancelToken.promise.then(() => {
        // 调用原生请求的方法,取消请求。一般用于请求内核提供了取消请求方法的情况下
        nativeRequest.abort()

        reject(new Error('cancel'))
      })
    }
  })

  // ...some code
}
1.5.2

2 years ago

1.5.1

2 years ago

1.5.0

2 years ago

1.3.7

2 years ago

1.3.6

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.3.10

2 years ago

1.3.9

2 years ago

1.3.8

2 years ago

1.3.5

2 years ago

1.3.3

2 years ago

1.3.2

2 years ago

1.3.3-alpha.0

2 years ago

1.2.6

2 years ago

1.2.4

3 years ago

1.2.3

3 years ago

1.2.0

3 years ago

1.1.1

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.2.1

3 years ago

1.1.2

3 years ago

1.1.0

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.1-alpha.0

3 years ago

1.0.0-alpha.0

3 years ago

0.4.7

3 years ago

0.4.5

3 years ago

0.4.4

3 years ago

0.4.6

3 years ago

0.4.3

3 years ago

0.4.2

3 years ago

0.3.2

3 years ago

0.4.0

3 years ago

0.3.0

3 years ago

0.2.7

3 years ago

0.2.8

3 years ago

0.2.6

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.9

3 years ago

0.1.6

3 years ago