You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I would like to work with progressive Results on RPC as the data amount is bigger as usual and the client can still process some minor datasets, but i didn't found a working example.
A RPC is a method that typically returns one result. How to handle progress data in such a method?
I read through the code and found that the RPC can return a Promise on which notify Callback will trigger such a progressive Result Message, but "notify" is marked DEPRECATED, and as PHP doesn't support async from scratch i see, that every Promise resolver is called in the constuctor leading to resolving the promise before it's returned. Am i wrong or did someone ever get this to work using Promises?
I would love to see some working progressive Call-Result with Thruway, if someone has one.
Regards,
Oliver
The text was updated successfully, but these errors were encountered:
I found a working solution myself, but would like to know if there are easier solutions.
$loop = $this->loop;
return new Promise(function (callable $resolve, callable $reject, callable $notify) use ($loop) {
// $loop->futureTick(... is needed, cause resolver is executed immediately
$loop->futureTick(function() use ($resolve, $notify) {
for ($x=0;$x<5;$x++) {
$notify([$x, 'Progress No. ' . $x, rand(0,9999)]);
await(\React\Promise\Timer\sleep(0.001)); // without this StreamData doesn't get sent
sleep(2); // some blocking actions
}
$resolve(['Done']);
});
});
Hi.
I would like to work with progressive Results on RPC as the data amount is bigger as usual and the client can still process some minor datasets, but i didn't found a working example.
I would love to see some working progressive Call-Result with Thruway, if someone has one.
Regards,
Oliver
The text was updated successfully, but these errors were encountered: