Promise

    [제로초] Promise와 동기/비동기 관련 짤막 키워드정리

    https://sunshineyellow.tistory.com/64 위는 같이 볼만한 드림코딩 콜백지옥 탈출 Promise 기초 게시글. 제로초 인간JS엔진 보다가 추가적인 키워드 문장 정리가 필요해 작성한다. Promise란? 실행은 됐는데!!! 결과값을 나중에 쓸 수 있다. "실행은 됐는데"가 중요. 그래서 new Promise 안의 익명함수는 동기적으로 실행이 된다. 동기비동기 실행순서 관련해서 아래 코드가 중요하다. 기억해 놓자. let a = 2; const p = new Promise((resolve, reject) => { console.log('실행1'); setTimeout(() => { a = 5; console.log('실행3', a); resolve(a); }, 0); }); // ..

    [드림코딩] 콜백함수 (4) : 콜백지옥 탈출, Promise (callback hell 코드개선하기)

    Callback Hell 예시 이전시간에 만들었던 콜백지옥 예시다. // 기본세팅 class UserStorage { loginUser(id, password, onSuccess, onError) { setTimeout(() => { if ( (id === 'master' && password === 'master00') || (id === 'submaster' && password === 'submaster00') ) { onSuccess(id); } else { onError(new Error('not found')); } }, 2000); } getRoles(user, onSuccess, onError) { setTimeout(() => { if (user === 'master') { onSucce..

    [드림코딩] 콜백함수 (2) : 콜백지옥 탈출, Promise (State, Producing)

    Promise Promise는 javascript에 내장되어있는 object로, 이를 통해서 비동기 코드를 깔끔하게 작성할 수 있다. 네트워크통신을 한다던지, 파일을 읽어온다던지 하는 등의 무거운 작업을 할 때는 오래 걸리므로 Promise로 처리한다. 무거운 작업을 처리하므로 사용자가 요청하지 않았는데도 일어나는 불필요한 네트워크통신(promise함수의 실행)을 방지해야 한다. new Promise가 만들어지는 순간, 해당 executor 함수가 자동으로 실행되므로 주의하자. promise는 아래 두 가지를 염두에 두면 좋다. 1. State(상태) process가 무거운 operation을 수행하고 있는지/완료되었다면 성공했는지/실패했는지의 상태 pending : operation을 수행 중인 상태 ..