> For the complete documentation index, see [llms.txt](https://docs.corets.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.corets.io/helpers/promise-helpers.md).

# Promise Helpers

Source code is hosted on [GitHub](https://github.com/corets/promise-helpers)

{% tabs %}
{% tab title="yarn" %}

```bash
yarn add @corets/promise-helpers
```

{% endtab %}

{% tab title="npm" %}

```
npm install --save @corets/promise-helpers
```

{% endtab %}
{% endtabs %}

## createTimeout() <a href="#createtimeout" id="createtimeout"></a>

A promisified version of the `setTimeout` function:

```typescript
import { createTimeout } from "@corets/promise-helpers"

await createTimeout(2000)
```

## createPromise() <a href="#createpromise" id="createpromise"></a>

Create a promise that you can pass around without specifying the resolve function upfront:

```typescript
import { createPromise } from "@corets/promise-helpers"

const runWhenResolved = async (promise: Promise<any>) => {
  try {
    const result =  await promise
    console.log("promise resolved with:", result)
  } catch (err) {
    console.error("an error was thrown from promise:", err)
  }
}

const promise = createPromise()

// pass promise to another function
runWhenResolved(promise)

promise.resolve("some data")
// or
promise.reject("reason...")
```
