git 기본 조작
async/await와 Puppeteer
- async await는 Promise를 좀 더 간편하게 사용할 수 있게하는 syntax(문법)이다.
Async
async
keyword는 function 앞에 붙일 수 있다.
async
keyword를 붙이면, 그 function이 항상 promise를 반환하는 것이라고 가정한다. 실제로 promise가 아닌 값을 반환하더라도 자체적으로 resolved된 promise로 만들어버린다.
- 예시
async function f() {
return 1;
}
f().then(alert);
async function f() {
return Promise.resolve(1);
}
f().then(alert);
await
- async function 안에서만 사용된다.
await
는 promise가 결과를 반환할때까지 기다리게 한다.
- 예시(출처 : javascript.info)
async function f() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("done!"), 1000)
});
let result = await promise;
alert(result);
}
f();
Puppeteer
- Puppeteer와 같이 브라우저 컨트롤을 해주는 상황에서 async await는 유용하다.
- 예시
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const dimensions = await page.evaluate(() => {
return {
width: document.documentElement.clientWidth,
height: document.documentElement.clientHeight,
deviceScaleFactor: window.devicePixelRatio
};
});
console.log('Dimensions:', dimensions);
await browser.close();
})();