JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 385
  • Score
    100M100P100Q105811F
  • License MIT

fast abort controller implementation that can be used as a ponyfill/polyfill

Package Exports

  • fast-abort-controller

Readme

FastAbortController

fast abort controller implementation that can be used as a ponyfill/polyfill

Installation

npm i --save fast-abort-controller

Usage

Supports both ESM and CommonJS

// esm
import AbortController from 'fast-abort-controller'
// commonjs
const AbortController = require('fast-abort-controller').default

Example with Fetch (which supports abort signals)

import AbortController from 'fast-abort-controller'

const controller = new AbortController()

const signal = controller.signal

function cancel() {
  signal.abort()
}

try {
  await fetch('codeshare.io', { signal })
  console.log('request success')
} catch (err) {
  if (err.name === 'AbortError') {
    console.warn('request aborted')
  } else {
    console.error('request error', err)
  }
}

// ...

Example with raceAbort

import { readFile } from 'fs/promises'

import AbortController from 'fast-abort-controller'
import raceAbort from 'race-abort'

const controller = new AbortController()

const signal = controller.signal

function cancel() {
  signal.abort()
}

try {
  // readFile doesnt support cancellation so we wrap it with raceAbort provided by another module 'race-abort'
  await raceAbort(readFile('foo/bar/qux'), signal)
  console.log('request success')
} catch (err) {
  if (err.name === 'AbortError') {
    console.warn('request aborted')
  } else {
    console.error('request error', err)
  }
}

License

MIT