---
name: "Promise::XS::Promise"
section: "3pm"
platform: "linux"
package: "libpromise-xs-perl"
version: "0.20-1+b4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Promise::XS::Promise"
---

# Promise::XS::Promise(3pm)

promise object

## NAME

Promise::XS::Promise - promise object

## SYNOPSIS

See Promise::XS.

## DESCRIPTION

This is Promise::XS’s actual promise object class. It implements these methods:

- •

  `then()`

- •

  `catch()`

- •

  `finally()`

… which behave as they normally do in promise implementations.

Additionally, `all()` and `race()` may be used, thus:

```
    my $p3 = Promise::XS::Promise->all( $p1, $p2, .. );
    my $p3 = Promise::XS::Promise->race( $p1, $p2, .. );
```

… or, just:

```
    my $p3 = ref($p1)->all( $p1, $p2, .. );
    my $p3 = ref($p1)->race( $p1, $p2, .. );
```

… or even:

```
    my $p3 = $p1->all( $p1, $p2, .. );
    my $p3 = $p1->race( $p1, $p2, .. );
```

(Note the repetition of `$p1` in these last examples!)

## NOTES

Subclassing this class won’t work because the above-named methods always return instances of (exactly) this class. That may change eventually, but for now this is what’s what.
