Promise 2

[JS] promise, async, await 쓰지 않고 parallel, waterfall 구현하기

프렙 과정에서 과제로 나왔던 parallel, waterfall 이 과제를 하면서 비동기에 대해 많이 배우게 되었다. 이번에는 이 과제를 promise를 사용해서 구현해 보았는데 이걸 기록해 놓으려 한다. 1. Parallel 병렬 function parallel (tasks, finalCallback) {} 수행해야 하는 함수들이 모여있는 tasks, tasks들이 모두 다 수행되고 나서 마지막으로 수행되어야 하는 finalCallback 테스트코드 const order = []; parallel( [ function (callback) { setTimeout(function () { order.push(1); callback(1); }, 150); }, function (callback) { setT..

Javascript 2022.06.03

[JS] Promise, Await 비동기에 대해 알아보기

햄버거를 먹으려면 맥도날드에 가서 바로 주문할 수 있다. 앞의 사람이 음식을 받지 않아도 바로 주문할 수 있다. 근데 만약 앞사람의 주문이 다 처리되고 나서야 주문할 수 있다면 어떻게될까? 효율적이지 못한 방법이라고 생각할 수 밖에 없다. 그리고 고객들의 불만이 쌓여갈 것이다. 이 간단한 예시로 비동기와 동기를 이해할 수 있다. 맥도날드의 예를 웹페이지로 바꿔서 생각해보면 더 잘 알 수 있다. 네이버 홈페이지를 예로 들어 홈페이지에 있는 하나 하나의 리소스가 주문이라고 생각해보자. 동기적으로 홈페이지를 구현하면 앞의 주문이 처리가 끝나야 다음 주문이 처리되기 때문에 하나씩 순차적으로 페이지에 나타나게 되고 답답한 페이지가 될 수 밖에 없다. 비동기는 작업을 병렬적으로 실행할 수 있어 효율적으로 작업을 수..

Javascript 2022.06.01