[Javascript] ์ฝœ๋ฐฑ(Callback)

๋ฉ”ํƒ€๋ชฝยท2023๋…„ 10์›” 17์ผ

๐Ÿ’ก ์ฝœ๋ฐฑ (Callback)

ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ•จ์ˆ˜

์˜ˆ๋ฅผ๋“ค์–ด
setTimeout(ํ•จ์ˆ˜, ์‹œ๊ฐ„)์—์„œ
setTimeout์˜ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉ๋œ ํ•จ์ˆ˜๋ฅผ ์ฝœ๋ฐฑ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

function timeout() {
	setTimeout(() => {
    	console.log('3์ดˆ๋’ค๋‚˜์˜จ๋‹ค');
    }, 3000)
}
timeout();
console.log('๋—');

Q : ์—ฌ๊ธฐ์„œ '๋—'์„ '3์ดˆ๋’ค๋‚˜์˜จ๋‹ค'๋’ค์— ๋‚˜์˜ค๊ฒŒ ํ•ด์ฃผ๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

function timeout() {
	setTimeout(() => {
    	console.log('3์ดˆ๋’ค๋‚˜์˜จ๋‹ค');
		console.log('๋—');
    }, 3000)
}
timeout();

๋‚˜ : ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋˜๋Š”๊ฑฐ ์•„๋‹˜?ใ…‹๊ฐœ์ฒœ์žฌ

Q :
ใ…‘timeoutํ•จ์ˆ˜๋ฅผ
ใ…‘๊ฑด๋“ค๊ธฐ์‹ซ์œผ๋ฉด์š”?

๋‚˜ : ๋Œ€์ฒด ์™œ ๊ทธ๋Ÿฐ ์ƒ๊ฐ์„ ํ•ด์•ผํ•˜๋Š”๋ฐ..?๐Ÿ˜‡


์ •๋‹ตโฌ‡

function timeout(callback) {
	setTimeout(() => {
    	console.log('3์ดˆ๋’ค๋‚˜์˜จ๋‹ค');
		callback();
    }, 3000)
}
timeout(() => {
	console.log('๋—');
});
timeout(() => {
	console.log('๋—');
});

timeoutํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํ•˜๋‚˜์˜ ์ต๋ช…ํ•จ์ˆ˜๋ฅผ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉ.
๊ทธ ์ธ์ˆ˜ console.log('๋—');๋Š” (callback)์ด๋ผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋“ค์–ด๊ฐ„๋‹ค.
์ด์ œ (callback)์€ ํ•˜๋‚˜์˜ ํ˜ธ์ถœ๋˜์ง€ ์•Š์€ ํ•จ์ˆ˜.
๊ทธ ํ•จ์ˆ˜๋ฅผ ๋‚ด๊ฐ€ ํ˜ธ์ถœํ•˜๊ณ  ์‹ถ์€ ์ž๋ฆฌ์— ํ˜ธ์ถœํ•ด์ค€๋‹ค.

function timeout(callback) {
	setTimeout(() => {
    	console.log('3์ดˆ๋’ค๋‚˜์˜จ๋‹ค');
		callback();
    }, 3000)
}

๐Ÿ’ก callback์€ ์‹คํ–‰์œ„์น˜๋ฅผ ๋ณด์žฅํ•˜๋Š” ์šฉ๋„๋กœ ๋งŽ์ด ํ™œ์šฉ๋œ๋‹ค!

profile
๋‚ด๊ฐ€๋ณด๋ ค๊ณ ๋งŒ๋“ ๋ฒจ๋กœ๊ทธ

0๊ฐœ์˜ ๋Œ“๊ธ€