์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์ฝœ๋ฐฑ์ง€์˜ฅ ์ด์–ด๋‹ฌ๋ฆฌ๊ธฐ

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

by esoesmio 2023. 5. 17. 16:40

๋ณธ๋ฌธ

const DEADLINE = 1400;

function relayRun (name, start, nextFunc, failMsg) {
    console.log(`๐Ÿ‘Ÿ ${name} ์ถœ๋ฐœ`);
    const time = 1000 + Math.random() * 500;

    setTimeout(() => {
        if (time < DEADLINE) {
            console.log(`๐Ÿšฉ ${name} ๋„์ฐฉ - ${(start + time)/1000}์ดˆ`);
            nextFunc?.(start + time);

        } else {
            console.log(failMsg);
            console.log(`๐Ÿ˜ข ์™„์ฃผ ์‹คํŒจ - ${(start + time)/1000}์ดˆ`);
        }

        if (time >= DEADLINE || !nextFunc) {
            console.log('- - ๊ฒฝ๊ธฐ ์ข…๋ฃŒ - -');
        }
    }, time);
}
relayRun('์ฒ ์ˆ˜', 0, start1 => {
    relayRun('์˜ํฌ', start1, start2 => {
        relayRun('๋Œ์ค€', start2, start3 => {
            relayRun('์ •์•„', start3, start4 => {
                relayRun('๊ธธ๋ˆ', start4, null, '์•„์•„, ์•„๊น์Šต๋‹ˆ๋‹ค...');
            }, '์ •์•„์—๊ฒŒ ๋ฌด๋ฆฌ์˜€๋‚˜๋ณด๋„ค์š”.');
        }, '๋Œ์ค€์ด ๋ถ„๋ฐœํ•ด๋ผ.');
    }, '์˜ํฌ๊ฐ€ ์™„์ฃผํ•˜์ง€ ๋ชปํ–ˆ๋„ค์š”.');
}, '์ฒ ์ˆ˜๋ถ€ํ„ฐ ๊ด‘ํƒˆ์ž…๋‹ˆ๋‹ค. ใ… ใ… ');

 

๋Œ“๊ธ€ ์˜์—ญ