【发布时间】:2016-07-22 23:42:46
【问题描述】:
我正在尝试在 Symfony 2 应用程序中使用 Guzzle 池。我正在考虑使用它,因为它能够一次发送并发请求。
但是,由于它本质上是异步的,我不确定如何在 Symfony 2 中将其用作服务。因为返回并不总是立即的。
例如,假设我在 Symfony 中有一个名为 Foo 的服务,它有类似这样的方法。
function test()
{
$request = $client->createRequest('GET', 'http://lt/?n=0', ['future' => true]);
$client->send($request)->then(function ($response) {
return "\n".$response->getBody();
});
}
现在我像这样调用这个服务。
$service = $this->get('foo');
$result = $service->test();
echo $result;// does not work :( echoes out null
有什么办法可以解决这个问题。我真的很想使用 Future,因为我需要异步功能。
【问题讨论】:
-
$response有getBody()方法吗?你试过var_dump()你的$response吗? -
是的,我试过了,但这没有任何好处。由于那时响应还没有准备好。
-
我的意思是在
return "\n".$response->getBody();之前var_dump()它 -
响应很好,这不是问题,问题是如何处理 Symfony 中的 React Promise,我认为 Guzzle 在后台使用了它。