{"id":10245,"date":"2020-08-30T14:23:52","date_gmt":"2020-08-30T05:23:52","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=10245"},"modified":"2024-01-11T14:21:55","modified_gmt":"2024-01-11T05:21:55","slug":"javascript%ec%9d%98-async-await-%ec%a0%95%eb%a6%ac","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=10245","title":{"rendered":"Javascript\uc758 async, await \uc815\ub9ac"},"content":{"rendered":"<p>\uc774 \uae00\uc744 \uc774\ud574\ud558\uae30 \uc704\ud574\uc11c\ub294 \uba3c\uc800 Promise API\uc5d0 \ub300\ud574 \uc54c\uace0 \uc788\uc5b4\uc57c \ud558\uba70 \uc544\ub798\uc758 \uae00\uc744 \ucc38\uace0\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"wUu2w6Ul18\"><p><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=10241\">Javascript\uc758 Promise API \uc694\uc57d<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Javascript\uc758 Promise API \uc694\uc57d&#8221; &#8212; GIS Developer\" src=\"http:\/\/www.gisdeveloper.co.kr\/?p=10241&#038;embed=true#?secret=mSKhgyF2mO#?secret=wUu2w6Ul18\" data-secret=\"wUu2w6Ul18\" width=\"525\" height=\"296\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>async\uc640 awit\uc758 \uc0ac\uc6a9\uc740 \ube44\ub3d9\uae30 \ucc98\ub9ac\uc5d0 \ub300\ud55c \ud63c\ub780\uc2a4\ub7ec\uc6b4 \ucf54\ub4dc\uc758 \uac00\ub3c5\uc131\uc744 \ud5a5\uc0c1 \uc2dc\ucf1c\uc90c\uc73c\ub85c\uc368 \ucf54\ub4dc\uc758 \uc720\uc9c0\ubcf4\uc218 \ubc0f \uacac\uace0\ud55c \ucf54\ub4dc\ub97c \uc791\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 \uc544\ub798\uc758 \ucf54\ub4dc\ub294 Promise API\ub97c \uc774\uc6a9\ud55c \ube44\ub3d9\uae30\ucc98\ub9ac\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nfunction getItem() {\r\n    return new Promise((resolve, reject) => {\r\n        setTimeout(function() {\r\n            let result = { name: 'Dip2K', age: 44 };\r\n            resolve(result);\r\n        }, 2000);\r\n    });\r\n}\r\n\r\nfunction callback(result) {\r\n    console.log(result);\r\n}\r\n\r\nconsole.log('1');\r\ngetItem().then(callback);\r\nconsole.log('2');\r\n<\/pre>\n<p>\uc704\uc758 \ucf54\ub4dc\ub97c async\uc640 await\ub97c \uc774\uc6a9\ud574 \ub3d9\uc77c\ud558\uac8c \uc791\ub3d9\ud558\ub3c4\ub85d \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nfunction getItem() {\r\n    return new Promise((resolve, reject) => {\r\n        setTimeout(function() {\r\n            let result = { name: 'Dip2K', age: 44 };\r\n            resolve(result);\r\n        }, 2000);\r\n    });\r\n}\r\n\r\nasync function get() {\r\n    let result = await getItem();\r\n    console.log(result);\r\n}\r\n\r\nconsole.log('1');\r\nget();\r\nconsole.log('2');\r\n<\/pre>\n<p>\ucf5c\ubc31\ud568\uc218 \uc5c6\uc774 \ube44\ub3d9\uae30\ucc98\ub9ac\uac00 \ub41c \uacbd\uc6b0\ub85c, \uc21c\ucc28\uc801\uc778 \ud750\ub984\uc758 \ucf54\ub4dc\ub85c \uc791\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc544\ub798\uc758 \ucf54\ub4dc\ub294 Promise\uc758 \uc608\uc678\uc758 \ucc98\ub9ac\ub97c async \ubc0f await \uad6c\ubd84\uc5d0\uc11c \uc5b4\ub5bb\uac8c \ucc98\ub9ac \ud558\ub294\uc9c0\ub97c \ubcf4\uc5ec\uc8fc\ub294 \ucf54\ub4dc\uc785\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nfunction getItem() {\r\n    return new Promise((resolve, reject) => {\r\n        setTimeout(function() {\r\n            let bOK = false;\r\n\r\n            if(bOK) {\r\n                let result = { name: 'Dip2K', age: 44 };\r\n                resolve(result);\r\n            } else {\r\n                reject(null);\r\n            }\r\n        }, 2000);\r\n    });\r\n}\r\n\r\nasync function get() {\r\n    try {\r\n        let result = await getItem();\r\n        console.log(result);\r\n    } catch(e) {\r\n        console.log(e);\r\n    }\r\n}\r\n\r\nconsole.log('1');\r\nget();\r\nconsole.log('2');\r\n<\/pre>\n<p>await\uc640 fetch\ub97c \ud568\uaed8 \uc0ac\uc6a9\ud558\ub294 \ucf54\ub4dc \uc608\uc2dc\ub97c \ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc5b8\uae09\ud558\uace0 \ub9c8\ubb34\ub9ac \ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"js\">\r\nasync function fetchData() {\r\n  const response = await fetch(\"http:\/...\")\r\n  const data = await response.json()\r\n  cosnole.log(data)\r\n}\r\n\r\nfetchData()\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\uc774 \uae00\uc744 \uc774\ud574\ud558\uae30 \uc704\ud574\uc11c\ub294 \uba3c\uc800 Promise API\uc5d0 \ub300\ud574 \uc54c\uace0 \uc788\uc5b4\uc57c \ud558\uba70 \uc544\ub798\uc758 \uae00\uc744 \ucc38\uace0\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. Javascript\uc758 Promise API \uc694\uc57d async\uc640 awit\uc758 \uc0ac\uc6a9\uc740 \ube44\ub3d9\uae30 \ucc98\ub9ac\uc5d0 \ub300\ud55c \ud63c\ub780\uc2a4\ub7ec\uc6b4 \ucf54\ub4dc\uc758 \uac00\ub3c5\uc131\uc744 \ud5a5\uc0c1 \uc2dc\ucf1c\uc90c\uc73c\ub85c\uc368 \ucf54\ub4dc\uc758 \uc720\uc9c0\ubcf4\uc218 \ubc0f \uacac\uace0\ud55c \ucf54\ub4dc\ub97c \uc791\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uba3c\uc800 \uc544\ub798\uc758 \ucf54\ub4dc\ub294 Promise API\ub97c \uc774\uc6a9\ud55c \ube44\ub3d9\uae30\ucc98\ub9ac\uc785\ub2c8\ub2e4. function getItem() { return new Promise((resolve, reject) => { setTimeout(function() &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=10245\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Javascript\uc758 async, await \uc815\ub9ac&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[88],"tags":[],"class_list":["post-10245","post","type-post","status-publish","format-standard","hentry","category-javascript"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/10245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10245"}],"version-history":[{"count":4,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/10245\/revisions"}],"predecessor-version":[{"id":14409,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/10245\/revisions\/14409"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10245"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}