build/extracted-examples/api/hack/function.HH.Asio.v/basic-usage.hack (18 lines of code) (raw):

// WARNING: Contains some auto-generated boilerplate code, see: // HHVM\UserDocumentation\MarkdownExt\ExtractedCodeBlocks\FilterBase::addBoilerplate namespace HHVM\UserDocumentation\Api\Hack\FunctionHHAsioV\BasicUsage; /** * Query an arbitrary number of URLs in parallel * returning them as a Vector of string responses. */ async function get_urls(\ConstVector<string> $urls): Awaitable<Vector<string>> { // Wrap each URL string into a curl_exec awaitable $handles = $urls->map($url ==> \HH\Asio\curl_exec($url)); // Wait on each handle in parallel and return the results return await \HH\Asio\v($handles); } <<__EntryPoint>> async function basic_usage_main(): Awaitable<void> { \init_docs_autoloader(); $urls = ImmVector { "http://example.com", "http://example.net", "http://example.org", }; $pages = await get_urls($urls); foreach ($pages as $page) { echo \substr($page, 0, 15).' ... '.\substr($page, -8); } }