Skip to content

Instantly share code, notes, and snippets.

@Meettya
Created May 28, 2011 06:41
Show Gist options
  • Save Meettya/996671 to your computer and use it in GitHub Desktop.
Save Meettya/996671 to your computer and use it in GitHub Desktop.
EnyAvent example
#!/usr/bin/env perl
use v5.14;
use warnings;
use AnyEvent::CouchDB;
use Data::Dump 'pp';
my $couch = couch('http://localhost:5984/');
my $db = couchdb('open_notice');
my $id = '814ad291d609ed83876aaeb7b40032d9';
my $w ; $w = AE::cv;
# Calling cb allow you to set a callback that will run when results are available.
$db->open_doc($id)->cb(sub {
my ($cv) = @_;
$w->send($cv->recv);
});
my $data = $w->recv; # enters "main loop" till $condvar gets ->send
say pp($data);
@Meettya
Copy link
Author

Meettya commented May 28, 2011

Тут у меня пара непоняток.

  1. в какой момент РЕАЛЬНО делается запрос к данным?
  2. профит-то в каком месте образуется?

@asergeyev
Copy link

Что ты имеешь в виду "профит"? Реально запрос к данным делается из функции http_request внутри AnyEvent::HTTP , ну и если сделать трейс можно найти конкретное место где сокет открывается и добавляется в асинхронную слушалку событий, где данные начинают отправляться, где данные начинают прибывать и где все прибывшие данные выпихиваются в callback, который ты задаёшь.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment