2017-02-08 13 views
1

を約束私は$resultの準備ができる前に送られ ReactPHPと

$app = function ($request, $response) use ($redis, $config) { 

    $promise = React\Promise\all(
     array(
      AsyncGetUser(), 
      AsyncGetDB(), 
      AsyncGetTemplate() 
     ) 
    )->then(function ($res) { 
     $result = ParseTemplate($user, $template, $whatever); 
    } 

    \React\Promise\resolve($promise); 


    $response->writeHead(200, array('Content-Type' => 'text/plain')); 
    $response->end($result); 

} 

$http->on('request', $app); 

しかし$response ReactPHP

を使用して約束の概念を理解しようとしています。 どうすれば $promiseを待っているので、 $resultを正しく送信できますか?

$response->endanother->then()セクションに移動しようとしましたが、ブラウザで応答が得られません(つまり、$ app =機能が既に終了したときにスクリプトが結果を取得します)。

答えて

1

私はreactphpはまったく分かりませんが、例えば約束事がJSの約束のように働いている場合は、結果がある->thenに回答を書く必要があるようです。

$app = function ($request, $response) use ($redis, $config) { 
    $promise = React\Promise\all(
     array(
      AsyncGetUser(), 
      AsyncGetDB(), 
      AsyncGetTemplate() 
     ) 
    )->then(function ($res) { 
     $result = ParseTemplate($user, $template, $whatever); 
     $response->writeHead(200, array('Content-Type' => 'text/plain')); 
     $response->end($result); 
    } 
} 

$http->on('request', $app); 

注:コード

\React\Promise\resolve($promise); 

に次の行には意味がありません。 \React\Promise\resolveはあなたが思っているように「約束を解決する」とは考えていません。それは解決した約束を作成して返します。

関連する問題