Asynchronous Request
Making asynchronous request
You can make asynchronous RPC call by appending Async
keyword1 to the method name.
// Synchronous request
// will block further execution, until request is complete
$hash = bitcoind()->getBestBlockHash();
dump($hash->get());
// Asynchronous request
// won't block further execution, calling the callback once complete
bitcoind()->getBestBlockHashAsync([], function ($hash) {
dump($hash->get());
});
In example below, getBlock() and getRawTransaction() methods are executed in parallel.
$hash = '000000004b7701d94a3aa295aed12e1b25d8d6a9a0ae939fbe8bacc7fc22cf82';
$txid = 'fc481a3e827523e3c42c55893baa3d0e16186d8738fd591b134c57450abfadb7';
bitcoind()->getBlockAsync($hash, function ($block) {
// got block info
dump($block->get());
});
bitcoind()->getRawTransactionAsync([$txid, true], function ($transaction) {
// got transaction info
dump($transaction->get());
});
Handle errors
You can provide callable as optional third parameter, that will be called in case of request failure.
bitcoind()->getBestBlockHashAsync(
[],
function ($hash) {
// do something on success
},
function (\Exception $exception) {
// handle errors
echo $exception->getMessage();
}
);
-
As with method names, keyword
Async
is case-insensitive and can be used asasync
to match your code style. ↩