Comments (9)
Well, the clients created by the bundle are actually Guzzle clients. So if Guzzle supports something, this bundles supports it too.
from csaguzzlebundle.
FYI, the client class used by the bundle is GuzzleHttp\Client
, so you should be able to use sendAsync
, or any *Async
method.
from csaguzzlebundle.
It seems something is missing or not working with regards to the Async call.
$client = $this->get('csa_guzzle.client.api_test');
$promise = $client->postAsync('/api/push/user', ['json' => $msg]);
$promise->then(
function (ResponseInterface $res) {
var_dump( $res->getStatusCode());
},
function (RequestException $e) {
var_dump($e->getMessage() );
var_dump($e->getRequest()->getMethod());
}
But nothing get printed.
So it seems that the function is called and Guzzle responds but nothing happens.
from csaguzzlebundle.
You need to unwrap your promise by using the wait()
method.
$reponse = $promise->wait();
If you need to unwrap multiple methods, you can use GuzzleHttp\Promise\unwrap($promises)
, where $promises
is an array of promises.
from csaguzzlebundle.
Keep in mind that PHP is not async. Your promise won't be automatically be resolved unless you call the wait()
method of the promise. And in this case, it will block until the promise is resolved.
from csaguzzlebundle.
If you need to do true async, then you should work with asynchronous workers, or by launching background processes and waiting on them.
Or have logic inside the then()
method of your promise.
from csaguzzlebundle.
Please read the Guzzle documentation on this: http://guzzle.readthedocs.org/en/latest/quickstart.html#concurrent-requests
from csaguzzlebundle.
I have read the documentation about the async calls and my impression was that you can fire async calls and let php continue without the wait.
Because I want to push data to external API without the current function have to wait for the result, make the whole function slower and I had the impression that this is exactly what the *Async functions support.
http://docs.guzzlephp.org/en/latest/faq.html#can-guzzle-send-asynchronous-requests
from csaguzzlebundle.
To close this issue, your feedback was again helpful.
Adding $promise->wait(); caused the async call to fire properly and the API call was made
$client = $this->get('csa_guzzle.client.api_test');
$promise = $client->postAsync('/api/push/user', ['json' => $msg]);
$reponse = $promise->wait();
from csaguzzlebundle.
Related Issues (20)
- Add documentation for making autowireable Guzzle client with custom class HOT 7
- X-Cache headers in list.html.twig HOT 1
- Tag a new version for 4.2 HOT 3
- Configure service for log middleware per client HOT 3
- cURL error 60: SSL certificate problem: certificate has expired HOT 1
- Mocking JWT/JKU service in tests is tedious HOT 2
- Provide a way to monitor clients created in code HOT 1
- How register a retry middleware? HOT 3
- New release to support twig 3 and symfony 5 HOT 2
- Make dependencies compatible with Twig 3.x HOT 1
- Tag a new version HOT 2
- Only load GuzzleExtension when profiler is available HOT 4
- Collect and let profiler show `proxy` request option HOT 1
- How to register a client with no middleware?
- [WIP] [RFC] Support for plugins HOT 1
- How to upgrade from 2.x to 3.x HOT 3
- Caching middleware & POST parameters HOT 1
- Tag a new version with guzzle 7 supports HOT 4
- Outdated log middleware documentation
- Use with Symfony 4.4 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from csaguzzlebundle.