---
tags: zeta-dom
---
# Promise utilities
### `always`
Similar to bind the same function as `then` and `catch` callback.
```typescript
always(promise, callback)
```
###### Example
```typescript
import { always } from "zeta-dom/util"
always(promise, (resolved, result) => {
toggleSomething(resolved);
});
```
### `resolveAll`
Creates a new promise that aggregates results of other promises.
```typescript
resolveAll(thenable)
resolveAll(arrayOfPromise)
resolveAll(dictOfPromise)
```
###### Example
```typescript
import { resolveAll } from "zeta-dom/util"
let p1 = Promise(1);
let p2 = p1.then(() => 2);
let p3 = 3;
resolveAll({ p1, p2, p3 }, v => {
console.log(v); // { p1: 1, p2: 2, p3: 3 }
});
// same as Promise.all
resolveAll([p1, p2, p3], v => {
console.log(v); // [1, 2, 3]
});
// for completeness, same as Promise.resolve
resolveAll(promise);
resolveAll(any);
```
### `catchAsync`
Shorthand for `promise.catch(noop)`.
```typescript
catchAsync(promise)
```
### `setPromiseTimeout`
Creates a promise when will reject or resolve automatically after number of milliseconds, if the given promise is still pending.
```typescript
setPromiseTimeout(promise, milliseconds, resolveOnTimeout?)
```