The SparkPostPromise::then function does not return the result of the callback functions. This means the new promise that it returns will have no data.
$result = $sparky->request(...)->then(function($response) {
// do something
return $response;
})->wait();
// $result is now null!
This is important if we want to add our own middleware to transform the response.
SparkPostPromise::then could be restructured like this to fix the issue (happy to open a PR if this is suitable):
public function then(callable $onFulfilled = null, callable $onRejected = null)
{
$request = $this->request;
return $this->promise->then(function ($response) use ($request) {
return new SparkPostResponse($response, $request);
}, function ($exception) use ($request) {
return new SparkPostException($exception, $request)
})->then($onFulfilled, $onRejected);
}
The
SparkPostPromise::thenfunction does not return the result of the callback functions. This means the new promise that it returns will have no data.This is important if we want to add our own middleware to transform the response.
SparkPostPromise::thencould be restructured like this to fix the issue (happy to open a PR if this is suitable):