{"id":2004,"date":"2019-03-20T21:36:02","date_gmt":"2019-03-20T20:36:02","guid":{"rendered":"https:\/\/solidt.eu\/site\/?p=2004"},"modified":"2022-07-25T08:35:43","modified_gmt":"2022-07-25T07:35:43","slug":"javascript-async-iterable","status":"publish","type":"post","link":"https:\/\/solidt.eu\/site\/javascript-async-iterable\/","title":{"rendered":"Javascript Async Iterable"},"content":{"rendered":"\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">async function* users(from, to) {\n  for (let i = from; i &lt;= to; i++) {\n    const res = await fetch('https:\/\/jsonplaceholder.typicode.com\/users\/' + i);\n    const json = await res.json();\n    yield json;\n  }\n}\n\n\/\/ Map operator for AsyncIterables\nasync function* map(inputAsyncIter, f) {\n  for await (let x of inputAsyncIter) {\n    yield f(x);\n  }\n}\n\nasync function main() {\n  const allUsers = users(1, 10);\n  \/\/ Pass `allUsers` around, create a new  `names`\n  const names = map(allUsers, user => user.name);\n  for await (let name of names) {\n    console.log(name);\n  }\n}\n\nmain();<\/pre>\n\n\n\n<button id=\"js-button\" type=\"button\">RUN<\/button>\n<pre id=\"js-output\"><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>RUN<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[5,4,1],"tags":[],"class_list":["post-2004","post","type-post","status-publish","format-standard","hentry","category-javascript","category-programming","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/2004","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/comments?post=2004"}],"version-history":[{"count":3,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/2004\/revisions"}],"predecessor-version":[{"id":2014,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/2004\/revisions\/2014"}],"wp:attachment":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/media?parent=2004"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/categories?post=2004"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/tags?post=2004"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}