{"id":6496,"date":"2025-07-09T06:40:18","date_gmt":"2025-07-09T11:40:18","guid":{"rendered":"https:\/\/frontendmasters.com\/blog\/?p=6496"},"modified":"2025-07-09T06:40:19","modified_gmt":"2025-07-09T11:40:19","slug":"promises-from-the-ground-up","status":"publish","type":"post","link":"https:\/\/frontendmasters.com\/blog\/promises-from-the-ground-up\/","title":{"rendered":"Promises From The Ground Up"},"content":{"rendered":"\n<p>Josh Comeau does a great job with beginner-friendly explanations of important concepts, and <a href=\"https:\/\/www.joshwcomeau.com\/javascript\/promises\/?from=newsletter\">Promises From The Ground Up<\/a> is no exception. In a nutshell, we have Promises because we need callbacks. We need callbacks because JavaScript is single-threaded and can&#8217;t wait around for things. And so we dance. These days, you&#8217;ll see more <code>async<\/code> and <code>await<\/code>, but it&#8217;s just what they call &#8220;syntactic sugar&#8221; over Promises, which is to say, a cleaner way to write the same code. <\/p>\n\n\n\n<p>Will Sentance\u00a0goes deep into Promises in <a href=\"https:\/\/frontendmasters.com\/courses\/javascript-hard-parts-v2\/promises-introduction\/?w=promises&amp;utm_source=boost&amp;utm_medium=blog&amp;utm_campaign=boost\">JavaScript: The Hard Parts<\/a> when you&#8217;re ready.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Josh Comeau does a great job with beginner-friendly explanations of important concepts, and Promises From The Ground Up is no exception. In a nutshell, we have Promises because we need callbacks. We need callbacks because JavaScript is single-threaded and can&#8217;t wait around for things. And so we dance. These days, you&#8217;ll see more async and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6498,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"sig_custom_text":"","sig_image_type":"featured-image","sig_custom_image":0,"sig_is_disabled":false,"inline_featured_image":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[29],"tags":[365,3,185],"class_list":["post-6496","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-the-beat","tag-async-await","tag-javascript","tag-promises"],"acf":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/frontendmasters.com\/blog\/wp-content\/uploads\/2025\/07\/pexels-photo-371285.jpeg?fit=1880%2C1253&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/6496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/comments?post=6496"}],"version-history":[{"count":2,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/6496\/revisions"}],"predecessor-version":[{"id":6499,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/posts\/6496\/revisions\/6499"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media\/6498"}],"wp:attachment":[{"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/media?parent=6496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/categories?post=6496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/frontendmasters.com\/blog\/wp-json\/wp\/v2\/tags?post=6496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}