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

// WARNING: Contains some auto-generated boilerplate code, see: // HHVM\UserDocumentation\MarkdownExt\ExtractedCodeBlocks\FilterBase::addBoilerplate namespace HHVM\UserDocumentation\Api\Hack\FunctionHHAsioVm\BasicUsage; /** * Query an arbitrary number of URLs in parallel * returning them as a Vector of string responses. * * Refer to \HH\Asio\v() for a more verbose version of this. */ async function get_urls(\ConstVector<string> $urls): Awaitable<Vector<string>> { // Invoke \HH\Asio\curl_exec for each URL, // then await on each in parallel return await \HH\Asio\vm($urls, fun("\HH\Asio\curl_exec")); } <<__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); } }