Skip to main content

fromPromise()

const fromPromise: <T, E>(promise, errorFn) => ResultAsync<T, E> = ResultAsync.fromPromise

Convenience export for ResultAsync.fromPromise.

Creates a ResultAsync from a Promise that may reject. The errorFn parameter is used to transform any rejection into an error value.


Type Parametersโ€‹

T: Tโ€‹

The type of the value in the Promise

E: Eโ€‹

The type of the error


Parametersโ€‹

promise: Promise<T>โ€‹

Promise that may resolve or reject

errorFn: (e) => Eโ€‹

Function to transform rejections into error values


Returns: ResultAsync<T, E>โ€‹

A new ResultAsync that will resolve to Ok(value) or Err(error)


Exampleโ€‹

const fetchUser = (id: string) =>
fetch(`/api/users/${id}`).then(r => r.json());

const result = ResultAsync.fromPromise(
fetchUser("123"),
(error) => `Failed to fetch user: ${error}`
);

const resolved = await result;
if (resolved.isOk()) {
console.log(resolved.value); // User data
} else {
console.log(resolved.error); // Error message
}

Sinceโ€‹

2.0.0


Exampleโ€‹

import { fromPromise } from './result-async';

const result = fromPromise(
fetch('/api/data'),
error => `Fetch failed: ${error}`
);