Skip to content

Commit 3103359

Browse files
authored
Merge pull request #5 from davidwdan/examples
Make async examples more declarative
2 parents 28ffecf + 59bc573 commit 3103359

File tree

2 files changed

+30
-25
lines changed

2 files changed

+30
-25
lines changed

examples/bitstamp-async.php

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
use ApiClients\Client\Pusher\Event;
44
use React\EventLoop\Factory;
5-
use Rx\Observer\CallbackObserver;
65
use ApiClients\Client\Pusher\AsyncClient;
76

87
require dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vendor/autoload.php';
@@ -15,13 +14,17 @@
1514
*/
1615
$client = AsyncClient::create($loop, 'de504dc5763aeef9ff52');
1716

18-
$channelitems = array('live_trades','live_trades_xrpusd');
19-
foreach ($channelitems as $channelitem) {
20-
$client->channel($channelitem)->subscribe(function (Event $event) {
21-
echo 'Channel: '. $event->getChannel(). PHP_EOL;
22-
echo 'Event: '. $event->getEvent(). PHP_EOL;
23-
echo 'Data: '. print_r($event->getData(),1). PHP_EOL;
17+
$channelitems = array('live_trades', 'live_trades_xrpusd');
18+
19+
$channels = Rx\Observable::fromArray($channelitems)
20+
->flatMap(function ($channelitem) use ($client) {
21+
return $client->channel($channelitem);
2422
});
25-
}
23+
24+
$channels->subscribe(function (Event $event) {
25+
echo 'Channel: ' . $event->getChannel() . PHP_EOL;
26+
echo 'Event: ' . $event->getEvent() . PHP_EOL;
27+
echo 'Data: ' . print_r($event->getData(), 1) . PHP_EOL;
28+
});
2629

2730
$loop->run();

examples/reddit-async.php

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,24 @@
1414
*/
1515
$client = AsyncClient::create($loop, require 'reddit.key.php');
1616

17-
$subReddits = $argv;
18-
array_shift($subReddits);
19-
foreach ($subReddits as $subReddit) {
20-
$client->channel($subReddit)->subscribe(
21-
function (Event $event) {
22-
echo 'Channel: ', $event->getChannel(), PHP_EOL;
23-
echo 'Event: ', $event->getEvent(), PHP_EOL;
24-
echo 'Data: ', json_encode($event->getData()), PHP_EOL;
25-
},
26-
function ($e) {
27-
echo (string)$e;
28-
},
29-
function () {
30-
echo 'Done!', PHP_EOL;
31-
}
32-
);
33-
}
17+
$subReddits = \Rx\Observable::fromArray($argv)
18+
->skip(1)
19+
->flatMap(function ($subReddit) use ($client) {
20+
return $client->channel($subReddit);
21+
});
22+
23+
$subReddits->subscribe(
24+
function (Event $event) {
25+
echo 'Channel: ', $event->getChannel(), PHP_EOL;
26+
echo 'Event: ', $event->getEvent(), PHP_EOL;
27+
echo 'Data: ', json_encode($event->getData()), PHP_EOL;
28+
},
29+
function ($e) {
30+
echo (string)$e;
31+
},
32+
function () {
33+
echo 'Done!', PHP_EOL;
34+
}
35+
);
3436

3537
$loop->run();

0 commit comments

Comments
 (0)