우리가 웹사이트에서 무언가를 했을대 웹 사이트는 서버에서 자료들을 json파일 형식으로 가져온다. 이때 만약 동기적으로 통신을 했다면 사용자들은 데이터들을 다 받기 전까지는 어떤 행동도 할 수 없을 것이다.
fetch('https://jsonplaceholder.typicode.com/posts')
.then((response) => response.json())
.then((data) => console.log(data));
fertch
메서드에 링크를 넣어주고 실행을 하면 data 매개변수를 통해서 웹서버가 리턴해준 json
형식의 데이터를 javascript
형식의 데이터로 변환된 결과를 보여준다.링크를 열어보면 json형식의 파일내용들이 있는데 링크의 파일과 console에 찍히는 값을 비교해보면
json
형식의 데이터들이 fetch
메서드를 통해서 javascript
형식의 데이터로 변환된 것을 보여준다.데이터 관련 처리는 비동기적으로 처리하는 경우가 많다.
console.log(1);
fetch('https://jsonplaceholder.typicode.com/posts')
.then((response) => response.json())
.then((data) => console.log(data));
console.log(2);
fetch
메서드의 경우 리턴 값이 promise
로 리턴이 된다. promise
로 리턴이 되기 때문에 .then
, .catch
메서드도 사용 가능하다.
let fetched = fetch('https://jsonplaceholder.typicode.com/posts')
fetched.then(function(response){ // 콜백 함수를 받는다
console.log(response)
})
fetched.catch(function(reason){ // 콜백 함수를 받는다
console.log(reason)
})
then
의 경우 fetch
를 통해서 실행한 결과가 성공했을때 then
으로 전달된 콜백함수가 호출된다. 그리고 콜백함수가 호출 되면서 결과값이 있다면 첫번째 파라미터로 받을 수 있다. 이 객체는 resposse
객체를 전달 받는다.
Response
객체를 받은것을 볼 수 있다.then
과 반대로 fetch
를 통해 실행한 결과가 실패 했을때 catch
의 콜백함수가 실행된다.