728x90
반응형
Async & Await
자바스크립트 비동기 처리 패턴의 최신 문법으로 Promise와 Callback에서 주는 단점을 해결하고 자바스크립트의 비동기적 사고 방식에서 벗어나 동기적(절차적)으로 코드를 작성하는 문법
형식
async function fetchData() {
await getUserList();
}
예제
async function fetchData() {
var list = await getUserList();
console.log(list);
}
function getUserList() {
return new Promise(function(resolve, reject) {
var userList = ['user1', 'user2', 'user3'];
resolve(userList);
});
}
fetchData()
를 호출하면 내부에서 getUserList()
를 호출하고 실행이 완료된 Promise 객체를 반환한다. 따라서 fetchData()
를 호출하면 userList
의 배열이 출력된다.
결과
Hacker News에 적용하기
src/store/actions.js
내 FETCH_LIST
에 async & await를 적용
import { fetchList } from "../api/index.js";
export default {
// Promise
// FETCH_LIST({ commit }, pageName) {
// return fetchList(pageName)
// .then(({ data }) => {
// commit("SET_LIST", data);
// })
// .catch((error) => {
// console.log(error);
// });
// },
// async
// 어떠한 값을 return 해도 return 값은 Promise 형식이다.
async FETCH_LIST({ commit }, pageName) {
try {
const response = await fetchList(pageName);
commit("SET_LIST", response.data);
return response;
} catch (error) {
console.log(error);
}
},
};
※ 기존 방식과 결과는 동일
728x90
반응형
'Dev > Vue.js' 카테고리의 다른 글
[Vue.js] Hacker News - 컴포넌트 디자인 패턴 (0) | 2020.10.07 |
---|---|
[Vue.js] Hacker News - 외부 라이브러리 모듈화 (0) | 2020.10.05 |
[Vue.js] Hacker News - 데이터 호출과 UX (0) | 2020.09.25 |
[Vue.js] HackerNews - Mixin과 하이 오더 컴포넌트 (0) | 2020.09.24 |
[Vue.js] Hacker News - 컴포넌트 공통화 (0) | 2020.09.23 |
댓글