2021/01/27 6

자바스크립트 프로젝트 개요

우선 프로젝트를 하려면 서버로부터 데이터를 가져올 수 있어야한다. Login할때 POST = https://api,marktube.tv/v1.me Body -{ email, password } 내정보 가져오기 GET = https://api.marktube.tv/v1/me Request Headers -Authorization: 로그인할때 받았던 토큰 책 목록 가져오기 Get Request Headers Authorization: 토큰값 책 정보 가져오기 Get Request Headers Authorization: 토큰값 책 추가하기 POST Request Headers Authorization: 토큰값 책 수정하기 PATCH = 북아이디를 추가해서 처리한다 Request Headers Authoriz..

Javascript 2021.01.27

연속되는 Promise 와 연속되는 async await && Promise.all 과 Promise.race

1. 연속되는 Promise function p(ms) { return new Promise((resolve, reject) => { setTimeout(() => { resolve(ms); //reject(new Error('reason')) }, ms) }); } p(1000) .then(()=>p(1000)) .then(()=>p(1000)) .then(()=>{ console.log('3000ms 후에 실행'); }); 다음소스코드와 같이 체인 형식으로 되어있다. 2. 연속되는 async await function p(ms) { return new Promise((resolve, reject) => { setTimeout(() => { resolve(ms); //reject(new Error('r..

Async-Await

Async-Await는 Promise를 기반으로 작동이 된다. 그러기 때문에 Promise를 확실히 공부하고 돌아오는걸 추천한다. ex) Promise 객체를 리턴하는 함수 function p(ms) { return new Promise((resolve, reject) => { setTimeout(() => { resolve(ms); }, ms) }); } ex) Promise 객체를 이용해서 비동기 로직을 수행할 때 p(1000).then(ms=>{ console.log(`${ms} ms후에 실행 된다.`); }); ex) Promise 객체를 리턴하는 함수를 await로 호출하는 방법 const ms = await p(1000); console.log(`${ms} ms후에 실행 된다.`); --> a..

Promise - Promise.all, Promise.race

ex) value가 프로미스 객체인지 아닌지 알 수 없는 경우, 사용하면 연결된 then 메서드를 실행한다. value가 프로미스 객체면, resolve된 then 메서드를 실행한다. value가 프로미스 객체가 아니면, value 를 인자로 보내면서 then 메서드를 실행한다. Promise.resolve(new Promise((resolve, reject) => { setTimeout(() => { resolve('haha'); }, 1000); }), ).then((data) => { console.log('프로미스 객체인 경우, resolve 된 결과를 받아 then이 실행된다.', data); }); Promise.resolve('bar').then(data => { console.log('th..

비동기처리란?

동기는 순차적으로 일을끝내는 방식이다. 비동기는 엄청 효율적으로 작동을 한다. 비동기는 쓰레드나 프로세스가 여럿이 돌고 있는거라는 뜻이다. 즉 멀티테스킹을 하는 코드를 짜는것이다. 궁금증: 자바스크립트는 쓰레드가 하나만 돌아간다고 배웠는데 어떻게 그런 비동기 작업이 되는것인가? 자바스크립트는 웹 브라우저나 Node.js의 자바스크립트 엔진에서 실행된다. 이 엔진에는 자바스크립트를 돌리는 하나의 쓰레드, 자바스크립트 함수 전용 특급 선로가 있다. 궁금증: 선로라면 먼저 들어간 게 먼저나오는 큐 형태인데, 함수는 나중에 넣은걸 먼저 꺼내는 스택으로 처리되는거 아닌가? 다른 포함 레벨의 함수들이 처리되는 순서는 역순이다. 하지만 같은 포함 레벨에서의 함수들은 순서대로 처리된다. 그래서 이해하기 쉽도록 같은 레..

Promise - finally, callback, 비동기 순차적

ex) fulfilled 되거나 rejected 된 후에 최종적으로 실행할 것이 있다면, .finally()를 설정하고, 함수를 인자로 넣는다. function p(){ return new Promise ((resolve, reject)=>{ /* pending */ setTimeout(()=>{ reject(new Error('bad')); /* fulfilled */ }, 1000); }); } p() .then((message)=>{ console.log('1000ms 후에 fullfiled 된다.', message); }) .catch((error)=>{ console.log('1000ms 후에 rejected 된다.', error); }) .finally(()=>{ console.log('end..