Async: TypeError: ์ •์˜๋˜์ง€ ์•Š์€ 'Symbol(Symbol.toStringTag)' ์†์„ฑ์„ ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 06์›” 06์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: caolan/async

์ด๊ฒƒ์€ ์‹ค์ œ๋กœ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋˜๋Š” ์ข…์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜๋˜์ง€ ์•Š๋Š”์ง€์— ๋Œ€ํ•œ ๋” ๋งŽ์€ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฒ„๊ทธ์ธ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ ํ…œํ”Œ๋ฆฟ์„ ํฌํ•จํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ด‡์˜ ๋‹ค์–‘ํ•œ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•˜๋Š” ์ดˆ๊ธฐํ™” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ๋‚ด ์ฝ”๋“œ์˜ ๋‹ค์–‘ํ•œ ๋‹ค๋ฅธ ์ง€์ ์—์„œ "TypeError: Cannot read property 'Symbol(Symbol.toStringTag)' of undefined" ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. async.waterfall ๋˜๋Š” distasync.js ์Šคํฌ๋ฆฝํŠธ ์ž์ฒด์—์„œ ์ „๋‹ฌ๋˜๋Š” ๋น„๋™๊ธฐ ํ˜ธ์ถœ ๋˜๋Š” ์ฝœ๋ฐฑ ํ•จ์ˆ˜.

์–ด๋–ค ๋ฒ„์ „์˜ ๋น„๋™๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? 2.4.1

(๋…ธ๋“œ ๋ฒ„์ „/๋ธŒ๋ผ์šฐ์ € ๋ฒ„์ „) ๋…ธ๋“œ v6.10.3

๋ญ ํ–ˆ์–ด? channel_connect.js ์—์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” bot_startup.js ์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚  ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๊นŒ? ์ตœ๊ทผ์— async๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ–ˆ์œผ๋ฉฐ ์ด ์˜ค๋ฅ˜๋Š” ์กด์žฌํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ด์ „๊ณผ ๊ฐ™์ด ์‹คํ–‰๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ๋Š” ์–ด๋• ๋‚˜์š”?
image

์—ฌ๊ธฐ์— StackOverflow์— ๋Œ€ํ•œ ๋‚ด ๊ฒŒ์‹œ๋ฌผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ๋‹ต๋ณ€์ด ์—†์ง€๋งŒ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

waterfall ์ „๋‹ฌํ•˜๋Š” ํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด undefined .

๋ชจ๋“  5 ๋Œ“๊ธ€

waterfall ์ „๋‹ฌํ•˜๋Š” ํ•จ์ˆ˜ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด undefined .

bot_startup์˜ #51 ๋ฐ #52 ํ–‰, ํ•ด๋‹น ๊ธฐ๋Šฅ์€ channel_connect์— ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋…ธ๋“œ js์˜ ๋น„๋™๊ธฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. createjob์˜ ๊ฒฐ๊ณผ ๋ณ€์ˆ˜๊ฐ€ ์žฌ์˜ˆ์•ฝ๋œ ์ž‘์—…์— ์ „๋‹ฌ๋˜๊ณ  ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๊ฒฐ๊ณผ๊ฐ€ rescheduledjob ํ•จ์ˆ˜๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š์ง€๋งŒ async.waterfall ์ •์˜์— ๋”ฐ๋ฅด๋ฉด ์ฝœ๋ฐฑ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๊ธฐ๋Šฅ์œผ๋กœ

asynch.waterfall
    ([
        x.createJob(jobDefine, thread_id, (result) => {
            data = result;
            console.log(result);
        }),
        x.rescheduleJob(data, jobDefine, 5000, (err, data) => {
            debugger;
        }),
        function (err, result) {
            // result now equals 'done' 
        }
    ])

@rajatprogrammer x.createJob ๋ฐ x.rescheduleJob ๋Š” ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@aearly ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, bro ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝœ๋ฐฑ bro๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰