Async/Await를 사용하여 ES6 Fetch 리팩토링
3973 단어 javascriptbeginners
ES6 가져오기
잠시 동안 Javascript를 사용해 왔거나 Javascript에서 비동기 함수의 기초를 배우는 초보자이든 간에, URI에서 데이터를 검색하기 위해 ES6Fetch API을 사용했을 가능성이 큽니다. 다음은
fetch()
를 사용하여 Github API에서 사용자 정보를 가져오는 예입니다.const getUser = name => {
fetch(`https://api.github.com/users/${name}`)
.then(response => response.json())
.then(data => console.log(data))
};
//get user data
getUser('yourUsernameHere');
위의 코드는 나쁘지 않습니다. 상당히 읽기 쉽고 올바르게 작동합니다. 그러나 fetch 함수를 해결하기 위한 콜백 함수를 지원하는
.then()
함수에 주목하십시오. 더 많은 .then()
를 연결하기 시작하면 코드를 읽기가 점점 더 어려워질 것이라고 상상할 수 있습니다. 이는 종종 "콜백 지옥"또는 중첩된 콜백이라고 하는 문제로 이어질 수 있으며 쉽게 성능 저하나 버그로 이어질 수 있습니다.async/await로 리팩토링
ES8은
async
함수와 await
키워드를 가져왔습니다. async
및 await
를 사용해도 비동기 함수가 작동하는 방식은 변경되지 않습니다. 이러한 기능은 가독성을 높이고 Promise 객체의 반환을 보다 매끄럽게 처리하는 구문상의 설탕일 뿐입니다. 또한 비동기 코드를 동기 코드처럼 보이게 만듭니다. 아래는 fetch()
및 async
를 사용하는 동일한 await
호출입니다.const getUser = async (name) => {
let response = await fetch(`https://api.github.com/users/${name}`);
let data = await response.json();
return data;
}
//get user data
getUser('yourUsernameHere')
.then(console.log(data));
전반적으로 이 구문은 읽기가 훨씬 쉽고 더 이상 큰
.then()
블록이 필요하지 않습니다. 그러나 await
키워드를 사용하여 함수를 호출하려면 async
함수 내에 있어야 합니다. 이 항목에서 다룰 수 있는 내용이 훨씬 더 많지만 Javascript 코드에서 async
및 await
를 구현하는 간단한 설명이라고 생각했습니다.
Reference
이 문제에 관하여(Async/Await를 사용하여 ES6 Fetch 리팩토링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jasonmeidev/refactoring-es6-fetch-with-async-await-4i31텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)