PHP NATS发送结果超出功能

时间:2019-02-05 11:10:41

标签: php nats.io

关于PHP NATS,我遇到了一些麻烦。我正在获取并打印味精正文值。一切正常。仅返回结果就是问题。这是代码

function connect(){
    require_once __DIR__ . "/../../vendor/autoload.php";
    $connectionOptions = new \Nats\ConnectionOptions();
    $connectionOptions->setHost('localhost')->setPort(4222);
    $c = new Nats\Connection($connectionOptions);
    $c->connect();
    $c->request('sayhello', 'Marty McFly', function ($response) {
      echo $response->getBody();    
      return $response->getBody();
    });
}

echo正在工作并输出值,而如果我这样使用,则return不会返回任何内容。

$res = connect():
print_r($res);

1 个答案:

答案 0 :(得分:1)

您正在从匿名函数的作用域回显,并从connect()函数的作用域返回。

您可以采用的一种方法是回调,您可以使函数以闭包作为参数,然后在function connect(\Closure $callback){ require_once __DIR__ . "/../../vendor/autoload.php"; $connectionOptions = new \Nats\ConnectionOptions(); $connectionOptions->setHost('localhost')->setPort(4222); $c = new Nats\Connection($connectionOptions); $c->connect(); $c->request('sayhello', 'Marty McFly', function ($response) use ($callback) { echo $response->getBody(); $callback(response->getBody()); }); } 中运行它,并将结果作为参数:

connect(function ($result) {
    // here you've got an access to the $response->getBody() from connect function

});

您将按以下方式使用它:

\\