You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
jiazhipeng 7d60be5b42 打包 10 months ago
..
dist 打包 10 months ago
src 打包 10 months ago
README.md 打包 10 months ago
package.json 打包 10 months ago

README.md

Callforth 🏃

npm version minzipped size

A tiny utility library to replace callbacks with Promises where possible. Don't callback, callforth!

It simply includes two functions I see myself re-implementing in nearly every project. So I might as well put them in a package.

Do things like:

await timeout(3000)
await eventOn(videoElement, "loadeddata")
const message = await eventOn(webWorker, "message")

Install 📦

npm install callforth

Now you can:

import { eventOn, timeout } from "callforth"

// ...

Alternatively, include this script and:

<script src="./path/to/callforth.umd.js"></script>
<script>
  const { eventOn, timeout } = window.callforth
  
  // ...
</script>

API 👀

eventOn

const payload = await eventOn(target, successEvent, errorEvent)

Parameters

  • target: any object you can call addEventListener on.
  • successEvent: name of the event you want to await.
  • errorEvent (optional): if this event fires, the promise is rejected.

Return Value

  • payload: what would usually be the first argument of the callback.

timeout

await timeout(delay)

Parameters

  • delay: delay in milliseconds after which the Promise should resolves.

Return Value

  • undefined

More Examples

async function loadScript(url) {
  let script = document.createElement("script")

  script.src = url

  await eventOn(script, "loaded")
}
async function primesLessThen(number) {
  primeWorker.postMessage(number)

  const result = await eventOn(primeWorker, "message")

  return result
}