私はここにicicle.ioを使用し... PHPでの非同期関数から値を返すしたいと思いますが、私は何でも使って幸せ、それは私がやりたいん提供!とにかく、これは私がが本当にが行う機能でその最後の少しを置くためにされたい何非同期PHPから値を返す
<?php
require __DIR__ . '/vendor/autoload.php';
use Icicle\Coroutine\Coroutine;
use Icicle\Loop;
function getArray($int) {
yield array ($int, $int + 1, $int + 2);
}
function getArrays() {
$numbers = array (1, 4, 7);
$results = array();
foreach ($numbers as $number) {
array_push($results, (yield(getArray($number))));
}
yield call_user_func_array('array_merge', $results);
}
$coroutine = new Coroutine(getArrays());
$data = $coroutine->then(
function ($result) {
$data = print_r($result, true);
return "Result: {$data}\n";
},
function (Exception $e) {
echo "Error: {$e->getMessage()}\n";
}
)->done(function ($value) {
echo $value;
});
Loop\run();
以下のいくつかのコードがあるので、それはより次のようになります。そして、
function sync() {
$coroutine = new Coroutine(getArrays());
$data = $coroutine->then(
function ($result) {
$data = print_r($result, true);
return "Result: {$data}\n";
},
function (Exception $e) {
echo "Error: {$e->getMessage()}\n";
}
)->done(function ($value) {
return $value;
});
Loop\run();
return /* the value */;
}
私のクールなソフトウェアから、私は同期のようにsync()を呼び出すことができます。悲惨なことに、非同期の俗語が背後で起こっていることに気づいていません。
誰でもこれをやっているのですか、私はどうすればよいでしょうか?現時点ではが最高です私は出力バッファーを使用しています(ab)です。& serialize()
/unserialize()
の機能がありますが、パフォーマンスを向上させるためにすべてのことをやっています。