From 350b3798bfc8a8e9ee6692c0eaac84aeac74af49 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Sat, 17 Nov 2012 22:20:56 +0100 Subject: [PATCH] Add PromisorInterface for promise-providing objects --- CHANGELOG.md | 3 +++ README.md | 7 +++++++ src/React/Promise/Deferred.php | 2 +- src/React/Promise/PromisorInterface.php | 8 ++++++++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/React/Promise/PromisorInterface.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ee99b97..37a26d69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ CHANGELOG ========= +* 1.0.3 (2012-11-17) + + * Add `PromisorInterface` for objects that have a `promise()` method. * 1.0.2 (2012-11-14) diff --git a/README.md b/README.md index abe61319..d710f6cd 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Table of Contents * [When::reduce()](#whenreduce) * [When::resolve()](#whenresolve) * [When::reject()](#whenreject) + * [Promisor](#promisor) 4. [Examples](#examples) * [How to use Deferred](#how-to-use-deferred) * [How Promise forwarding works](#how-promise-forwarding-works) @@ -275,6 +276,12 @@ This can be useful in situations where you need to reject a Promise without throwing an exception. For example, it allows you to propagate a rejection with the value of another Promise. +### Promisor + +The `React\Promise\PromisorInterface` provides a common interface for objects +that provide a promise. `React\Promise\Deferred` implements it, but since it +is part of the public API anyone can implement it. + Examples -------- diff --git a/src/React/Promise/Deferred.php b/src/React/Promise/Deferred.php index 8b76edc2..229971d5 100644 --- a/src/React/Promise/Deferred.php +++ b/src/React/Promise/Deferred.php @@ -2,7 +2,7 @@ namespace React\Promise; -class Deferred implements PromiseInterface, ResolverInterface +class Deferred implements PromiseInterface, ResolverInterface, PromisorInterface { private $completed; private $promise; diff --git a/src/React/Promise/PromisorInterface.php b/src/React/Promise/PromisorInterface.php new file mode 100644 index 00000000..b53c00ae --- /dev/null +++ b/src/React/Promise/PromisorInterface.php @@ -0,0 +1,8 @@ +