Guzzleでは、実際のユーティリティを提供する約束はありますか? はコールウェイティング()である必要があります。 (ドキュメントから)次のコード自体が何もしないようだ:Guzzle async promiseのポイントは何ですか?
$promise = $client->requestAsync('GET', 'http://httpbin.org/get');
$promise->then(
function (ResponseInterface $res) {
echo $res->getStatusCode() . "\n";
},
function (RequestException $e) {
echo $e->getMessage() . "\n";
echo $e->getRequest()->getMethod();
}
);
あなたは>リクエストをするために)(待つ$プロミスを呼び出す必要がある場合は、約束のポイントは何ですか?どのようにこれはより何が違うのは本当にです:
$request = new Request('GET', 'http://httpbin.org/get');
$response = $client->send($request);
if ($response
私が言うことができる最高の、唯一の利点は、要求の成功と失敗のコールバックを定義するために便利な方法ですです。複数のリクエストを作成する場合のdocセクションでも、以下のコードがあります。これは、すべてのリクエストをブロックして実行するように思われます。これは私が期待すべきものですか?
// Wait on all of the requests to complete.
$results = Promise\unwrap($promises);
「当時答えを、私たちは応答に動作することができ、待って、フェッチ行く」ために使用されているので、後の部分は、いくつかのリストラが必要になりますが、繰延処理と全く同義非同期(async)ですか? –
良い質問とおそらくそうではありません。本当に私はそれの約束の部分でもっと混乱しています。 – originalbryan
私はPHPが本当に非同期のイベントハンドリング(まだ)が可能であるとは思わないので、 'wait()'を呼び出すことができます。だから、Javascriptで見られるメリットのいくつかはPHPのバージョン(まだ)では明白ではないという真理があるかもしれませんが、約束の目的はあなたが "読み取り専用"のようなインターフェースそのインタフェースを介して解決できない遅延に変換します。おそらくこれは後方互換性のためです(今のところ)。 –