티스토리 뷰
async await를 사용하다가 보면 이런 문제가 튀어나온다.
자바스크립트가 익숙하지 않아서 그런거지만
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | console.log("1===================================") async function getReadmeInHtml(repo) { try { const readme = await function getReadme(repo) { return 'a'; } const html = await function convertMdToHtml(readme) { return readme + 'b'; } const filename = await function saveHtml(html) { return html + 'c'; } return filename; } catch (err) { console.log('An error has occurred: ', err) } } getReadmeInHtml("1").then(function(result) { console.log("getReadmeInHtml" +result); }); // getReadmeInHtmlfunction saveHtml(html) {return html + 'c';} console.log(getReadmeInHtml("1")); // Promise { <pending> } console.log("2===================================") async function getReadmeInHtml2(repo) { try { const readme = await new Promise(function(resolve, reject) { resolve('a'); }); const html = await new Promise(function(resolve, reject) { resolve(readme + 'b'); }); const filename = await new Promise(function(resolve, reject) { resolve(html + 'c'); }); return filename; } catch (err) { console.log('An error has occurred: ', err) } } getReadmeInHtml2("1").then(function(result) { console.log("getReadmeInHtml2 : "+result) }) // getReadmeInHtml2 : abc console.log(getReadmeInHtml2("1")); //Promise { <pending> } | cs |
이걸 보면 이해가 될 것이다.
주석으로 결과를 적었는데 결론적으로 Async가 되 있는 값을 console.log로 부르면 Promise { <pending> } 가 나온다.
Then 을 붙혀서 읽어야한다..
그리고 await가 붙은 것은 Promise를 써야 하는거 같다.
resolve / reject 두개중 하나의 값을 반환해주는거 같은데
1 2 3 4 5 6 7 8 9 10 11 | function doit() { return new Promise(function(resolve, reject) { getHangangTemp(function(err, result) { if (resolve) { resolve(result) } else { reject(err) } }); }) } | cs |
고로 이런 코드를 적용해야 하는거 같다.
그냥 function을 적용한 결과는... 잘 안된다.
Promise.all([])[]안에 들어가는 function도 new Promise 이런 처리만을 받는거 같다.
느낌만으로 아는중
'프로그래밍 > 자바스크립트 ' 카테고리의 다른 글
[자바스크립트] json안에 key가 있는지 확인하는 방법 (0) | 2018.10.25 |
---|---|
자바스크립트에서 String을 int로 String을 float으로 (글자를 숫자로 변환) (0) | 2018.10.12 |
Nodejs에서 proj4 사용하기 (0) | 2018.10.11 |
[javascript] 전각과 반각 구별하기 (0) | 2017.10.11 |
[javascript] 영문과 숫자만 허락하는 자바스크립트(id input에 사용) (0) | 2017.10.11 |