반응형

Callback 3

자바스크립트 비동기 처리 Promise

자바스크립트 비동기 처리 Callback 어떠한 함수들이 시간이 걸리는 연산(또는 작업)일 때 그냥 순서대로 호출하는 식의 코드를 작성하게 되면, 원하는 순서대로 처리가 되지 않는것을 경험할 수 있다. 😅 실행할 때마다 실행 순서 jaegeun.tistory.com 🤓 Callback 함수를 Promise로 변경 '비동기 처리 Callback'의 방법을 Promise 방법으로 바꾸는 코드는 다음과 같다. function func1() { return new Promise((resolve, reject) => { setTimeout(()=>{ console.log('1'); resolve(); }, Math.random()*100); }); } function func2() { return new Prom..

개발/Javascript 2021.10.04

자바스크립트 비동기 처리 Callback

어떠한 함수들이 시간이 걸리는 연산(또는 작업)일 때 그냥 순서대로 호출하는 식의 코드를 작성하게 되면, 원하는 순서대로 처리가 되지 않는것을 경험할 수 있다. 😅 실행할 때마다 실행 순서가 달라요! 아래 코드는 각 함수들의 실행 시간을 Math.random() 함수를 이용하여 랜덤하게 실행되도록 했다. func1(), func2(), func3() 순서대로 호출했지만 실행할 때마다 호출되는 순서가 다른것을 볼 수 있다. * Math.random() : 0~1 사이의 소수 값을 반환해주는 함수 function func1() { setTimeout(()=>{ console.log('1'); }, Math.random()*100); } function func2() { setTimeout(()=>{ cons..

개발/Javascript 2021.10.04

자바스크립트 배열 연산 동기화 Promise All

자바스크립트는 절차 지향적 언어들과 달리 으로 동기화되어 실행되지 않는다. 시간이 걸리는 작업은 바로 실행되지 않고 콜백 큐에 넣어두고 다음 코드로 넘어가게 된다. 문제상황 그래서 아래와 같이 배열 요소마다 시간이 걸리는 연산(작업)은 각 연산이 끝날때 까지 기다리지 않고, 콜백 큐에 넣어 두고 넘어간다. 그렇기 때문에 아래와 같이 코드를 짜면, 연산이 끝나지 않은 값이 반환된것을 볼 수 있다. function work() { let arr = [1, 2, 3, 4, 5, 6]; arr.forEach(element=>{ setTimeout(()=>{ element *= 10; }, 100); }); return arr; } console.log("work return: ", work()); 해결 방법 그..

개발/Javascript 2021.10.03
반응형