promto

1.2.0 • Public • Published

promto

npm version

promto Wrappes A Promise In Timeout.

yarn add promto

Table Of Contents

API

The package is available by importing its default function:

import promto from 'promto'

async promto(
  promise: Promise,
  timeout: number,
  description: string?,
): Promise

Creates a new promise which will be rejected upon timeout (after N milliseconds). It will be resolved with the promise value or rejected with the promise error when not timed out.

import promto from 'promto'
 
/**
 * @param {number} timeout 
 * @param {string|Error} result 
 */
const makePromise = async (timeout, result) => {
  await new Promise((resolve) => {
    setTimeout(resolve, timeout || 200)
  })
  if (result instanceof Error) throw result
  return result
}
 
(async () => {
  // ok
  const res = await promto(makePromise(50, 'hello'), 100)
  console.log(res)
  // rejected timeout
  try {
    await promto(makePromise(150, 'world'), 100)
  } catch (err) {
    console.log(err.message)
  }
  // rejected timeout with description
  try {
    await promto(makePromise(150, 'world'), 100, 'Example')
  } catch (err) {
    console.log(err.message)
  }
  // rejected promise
  try {
    await promto(makePromise(50, new Error('Error in promise')), 100)
  } catch (err) {
    console.log(err.message)
  }
})()
hello
Promise has timed out after 100ms
Example has timed out after 100ms
Error in promise

Copyright

Art Deco © Art Deco 2019 Tech Nation Visa Tech Nation Visa Sucks

Readme

Keywords

Package Sidebar

Install

npm i promto

Weekly Downloads

14,345

Version

1.2.0

License

MIT

Unpacked Size

8.28 kB

Total Files

9

Last publish

Collaborators

  • zvr