Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3장. 자바스크립트에서 비동기 처리 다루기 · GitBook #15

Open
utterances-bot opened this issue Feb 12, 2020 · 3 comments

Comments

@utterances-bot
Copy link

3장. 자바스크립트에서 비동기 처리 다루기 · GitBook

https://learnjs.vlpt.us/async/

Copy link

제가 알기론 비동기 fetch같은 함수사용시 콜백을 안쓰고 위처럼 내부에 정의할시, 예를 들면
fetch('www.....'){
console.log(내가 fetch후 갖고 오고 싶은데이터)
}
와 같이 log찍으면 비동기니까 fetch 해서 데이터 오기전에 이미 console.log 찍어버리니 undefined 에러 뜰거에요. 그런데 콜백으로 console을 함수써서 순서를 정해 버리면 데이터 받기 전까진 console.log가 안돌아가니 에러가 안나죠. 비동기에서 순위 정할수 있는걸로 알고 있어요.

Copy link

hammlee commented Jan 29, 2021

콜백을 쓰는 궁극적인 이유는 함수 간의 실행 순서를 잡아주는 겁니다. A 함수가 실행되고 결과가 나오면 그걸 B에게 받아 처리하게 끔 순서를 잡아주는거죠. (그게 결국 비동기를 처리해주는 거랑 동일한 말입니다) 위 코드는 이렇게 하면 좀 더 이해하시기 쉬울거에요.

function work(callback) {
setTimeout(() => {
const start = Date.now();
for (let i = 0; i < 10000; i++) {}
const end = Date.now();
callback(end - start + 'ms');
}, 0);
}

console.log('작업 시작!');
work((endTime) => {
console.log(endTime);
console.log('작업이 끝났어요');
});
console.log('다음 작업')

Copy link

22.08.18
슬슬 이해하기 복잡해지네요 ㅠ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants